繁体   English   中英

更新深度嵌套反应 redux state 数组元素

[英]Update deeply nested react redux state array element

我有一个像这样的 redux state 阵列

[{
    client_id:12,
    template:{
     item1:[],
     item2:[],
     simple templates:[
      "Some paragraph 1",
      "Some paragraph 2",
      "Some paragraph 3",
     ]
    }
}]

所以我想使用 redux 不变性助手https://reactjs.org/docs/update.html更新simple templates数组上的元素。 例如,我想用"Some paragraph #2"更新"Some paragraph 2 " 。 我正在使用表单将要更新的数据传递给减速器。

到目前为止,我一直在尝试这样的事情

case TEMP_UPDATE_TEMPLATE: {
      console.log('index', action.payload.index); 
      console.log('data', action.payload.data); //new data that I want to update

      return update(state.simple_templates, {
        [0]: {
          template: {
            "Simple Templates": {
              [action.payload.index] : {
                $set: action.payload.data
              }
            }
          }
        }
      })
}

这对我来说真的很困惑。 请帮助我了解如何使用给定索引更新深度嵌套的 object 数组的元素。

尝试使用$splice而不是$set因为它是一个数组。

return update(state.simple_templates, {
  [0]: {
    template: {
      "simple templates": {
        $splice: [action.payload.index, 1, action.payload.data]
      }
    }
  }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM