我们如何在不删除状态字段的情况下进行更新?(在 React / JavaScript 中)

你好工程师

我们如何在不删除状态字段的情况下进行更新?

async componentDidMount() {
    let { get_financial_assessment } = await DAO.getFinancialAssessment()
    if( get_financial_assessment ) {
        this.setState(get_financial_assessment); <- something with prevState...
    } else {
        // To-Do: Show the error page.
        console.log('You must login to see this page');
    }
}

这是状态

state = {
    income_source: '',
    employment_status: '',
    employment_industry: '',
    occupation: '',
    source_of_wealth: '',
    education_level: '',
    net_income: '',
    estimated_worth: '',
    account_turnover: '',
}

如果我们得到get_financial_assessmentas {},则状态当前更新为{}:(

我们怎样才能防止这种情况发生?

更新样本输入

{
    account_turnover: "$25,000 - $50,000",
    cfd_score: 0, <- see this is extra field and this is unintentionally added to our state.
    education_level: "Secondary",
    employment_industry: ...

    ...
}

After setState,state将保留我在中指定的相同字段state并更新每个相应字段的值。

问题

  1. 有时 json 数据没有必填字段并删除 .json 中的字段state
  2. 有一个额外的字段,它正在添加到我们的 state
尼基尔·阿加瓦尔

从问题可以有2种情况

1. 所有值为 '' 的对象

要检查所有键为 '' 的对象,您必须将代码更新为以下

if( get_financial_assessment && Object.values(get_financial_assessment).every(v => v !== '')) {
   this.setState(get_financial_assessment); 
} else {
    // To-Do: Show the error page.
    console.log('You must login to see this page');
}

2. 空对象(无键)

空对象{}不会评估为假,因此您必须更新 if 语句以检查空对象,如下所示

if( get_financial_assessment && Object.keys(get_financial_assessment).length) {
   this.setState(get_financial_assessment); 
} else {
    // To-Do: Show the error page.
    console.log('You must login to see this page');
}

编辑

您可以事先准备好对象,然后使用setState函数进行设置

// original state
let state = {account_turnover: "$25,000 - $50,000",cfd_score: 0};
// Response with updated, missing and additional keys
let data = {cfd_score: 3,education_level: "Secondary",employment_industry: ""};

// Update the current state object and set using setState
Object.entries(state).forEach(([k,v]) => state[k] = data[k] ? data[k] : v);
console.log(state);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们如何在没有任何JavaScript的情况下在QML中声明枚举?

来自分类Dev

在什么情况下,我们会在javascript中创建新的内存引用?

来自分类Dev

我们如何,何时以及为什么在React JavaScript中清理组件?

来自分类Dev

即使在生产模式下,我们如何在 React Dev 工具中检查所有 React 组件及其状态?

来自分类Dev

我们如何在React功能组件中的相同功能中获取更新的道具?

来自分类Dev

如何在不删除git中的clidl的情况下更新父分支?

来自分类Dev

如何在不删除其他变量的情况下更新Java中的属性值

来自分类Dev

我们如何在 React 中创建动态元素

来自分类Dev

我们如何在javascript中更新特定对象的对象?

来自分类Dev

如何在我们的JavaScript中触发Bootstrap

来自分类Dev

如何在没有循环的情况下向Javascript数组中的每个对象添加字段?

来自分类Dev

如何在没有父节点为空的情况下删除javascript中的节点

来自分类Dev

如何在不使用 Javascript 中的内置函数的情况下进行过滤?

来自分类Dev

如何在不删除任何云存储文件的情况下从我的 PC 中删除 Google 驱动器?

来自分类Dev

javascript中的'this',在我的情况下如何使用它?

来自分类Dev

在React中,如何在不映射整个对象的情况下获取数据并在状态数组中呈现单个对象?

来自分类Dev

如何在不删除其他列的情况下更新data.table中的预定义列列表?

来自分类Dev

React + JavaScript如何在带有所有给定字段的React中创建对象

来自分类Dev

如何从表中更新状态字段

来自分类Dev

如何在不删除Linux中其他行的情况下删除标题?

来自分类Dev

如何在不删除指定文件的情况下反转目录中的删除文件

来自分类Dev

如何在不知道我们需要多少行的情况下控制SQL查询中返回的行数

来自分类Dev

如何在不删除html表的情况下清空javascript

来自分类Dev

如何在React.js中包含外部JavaScript库

来自分类Dev

如何在react-native中过滤JavaScript对象

来自分类Dev

如何在Javascript / React中拆分列表项的文本?

来自分类Dev

如何在 React 中打印 JavaScript new Date()?

来自分类Dev

如何在 react js 或 javascript 中从 html 生成图像?

来自分类Dev

如何在不知道 Javascript 中的 id 的情况下获取输入文本字段的值

Related 相关文章

  1. 1

    我们如何在没有任何JavaScript的情况下在QML中声明枚举?

  2. 2

    在什么情况下,我们会在javascript中创建新的内存引用?

  3. 3

    我们如何,何时以及为什么在React JavaScript中清理组件?

  4. 4

    即使在生产模式下,我们如何在 React Dev 工具中检查所有 React 组件及其状态?

  5. 5

    我们如何在React功能组件中的相同功能中获取更新的道具?

  6. 6

    如何在不删除git中的clidl的情况下更新父分支?

  7. 7

    如何在不删除其他变量的情况下更新Java中的属性值

  8. 8

    我们如何在 React 中创建动态元素

  9. 9

    我们如何在javascript中更新特定对象的对象?

  10. 10

    如何在我们的JavaScript中触发Bootstrap

  11. 11

    如何在没有循环的情况下向Javascript数组中的每个对象添加字段?

  12. 12

    如何在没有父节点为空的情况下删除javascript中的节点

  13. 13

    如何在不使用 Javascript 中的内置函数的情况下进行过滤?

  14. 14

    如何在不删除任何云存储文件的情况下从我的 PC 中删除 Google 驱动器?

  15. 15

    javascript中的'this',在我的情况下如何使用它?

  16. 16

    在React中,如何在不映射整个对象的情况下获取数据并在状态数组中呈现单个对象?

  17. 17

    如何在不删除其他列的情况下更新data.table中的预定义列列表?

  18. 18

    React + JavaScript如何在带有所有给定字段的React中创建对象

  19. 19

    如何从表中更新状态字段

  20. 20

    如何在不删除Linux中其他行的情况下删除标题?

  21. 21

    如何在不删除指定文件的情况下反转目录中的删除文件

  22. 22

    如何在不知道我们需要多少行的情况下控制SQL查询中返回的行数

  23. 23

    如何在不删除html表的情况下清空javascript

  24. 24

    如何在React.js中包含外部JavaScript库

  25. 25

    如何在react-native中过滤JavaScript对象

  26. 26

    如何在Javascript / React中拆分列表项的文本?

  27. 27

    如何在 React 中打印 JavaScript new Date()?

  28. 28

    如何在 react js 或 javascript 中从 html 生成图像?

  29. 29

    如何在不知道 Javascript 中的 id 的情况下获取输入文本字段的值

热门标签

归档