用里面的数组更新嵌套状态对象

update nested state object with array inside

我在更新内部有对象数组的状态对象时遇到问题。我尝试过的东西很少,但其中 none 有效。这是我的状态对象的示例。在下面的示例中,我想根据用户在输入字段中键入的内容更新 test 和 test2 的值。有人可以指导我正确的方向吗?谢谢!

this.state = {
   someProperty: {
      someOtherProperty: [
          object in array: {
             test: true,
             test2: false
          },
          object in array: {
             test: true
             test2: false
          }
          ..
      ]
      ...
   }
   ...
}

我更新对象内部值的尝试如下:

this.setState(prevState => ({
    ...prevState,
    someProperty: {
        ...prevState.someProperty,
        someOtherProperty: [
            ...prevState.someProperty.someOtherProperty, 
            test: false
        ]
    }
}))

您可以创建一个数组 latestSomeOtherProperty,更新所需的索引,然后;

const latestSomeOtherProperty = someOtherProperty.map(prop=>{...prop, test: false}); // it updates all but you can put condition here

this.setState(prevState => ({
    ...prevState,
    someProperty: {
        ...prevState.someProperty,
        someOtherProperty: [
            ...latestSomeOtherProperty
        ]
    }
}))