如何在没有变异的情况下更新状态数组中的现有值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在没有变异的情况下更新状态数组中的现有值?相关的知识,希望对你有一定的参考价值。

我有以下函数来获取currentStatus和id并根据上面的参数更改一个值。我有以下状态。

this.state.column : [
  [
    arr1 : { id: 1, currentStatus: ''to-do'}, 
           { id: 4, currentStatus: ''completed'},
  ],
  [
    arr2 : { id: 10, currentStatus: ''in-progress'}, 
           { id: 14, currentStatus: ''completed'},
  ],
]

我将新的currentStatus和特定的id作为参数提供给以下函数,并且需要用新的currentStatus替换现有的currentStatus。 id可以找到特定的对象(整个数组是唯一的)。我正在尝试以下代码,最后得到错误Cannot read property 'nn' of undefined

import update from 'immutability-helper';

getCurrentStatus = (currentStatus, id) => {
    Object.keys(this.state.columns).forEach(ee => {
      if (this.state.columns[ee].find(x => x.id === id)){
        var nn = this.state.columns[ee].findIndex(x => x.id === id)
        this.setState({
          columns : update(this.state.columns, {ee:{nn:{$set : currentStatus}}})
        }, () =>
          console.log(this.state.columns)
        )
      }
    })
  }

以上是关于如何在没有变异的情况下更新状态数组中的现有值?的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL,如何在不创建重复项的情况下将数组更新为现有数组?

如何在不丢失现有值的情况下编辑复选框

Oracle - 在没有触发器的情况下更新表时出现“表正在变异,触发器/函数可能看不到它”错误

如何在不改变的情况下更新对象数组的嵌套数组的状态

我可以在没有 _id 的情况下更新现有文档吗?

如何在没有重新启动的情况下更新bot状态中的'bot.users.size'