在反应中改变嵌套状态

时间:2020-08-22 21:52:30

标签: javascript reactjs

让我说我的初始状态如下:

state = { body: [] }

稍后进行了一些更改(它是一个拖放应用程序,我想将当前dom的结构保存到状态,以便以后可以加载相同的结构)

state = {
 body: [
   {
     type: 'section',
     options: [],
     content: [
       {
         type: 'column',
         options: [],
         content: null
       }
     ]
   },
   {
     type: 'section',
     options: []
   }
 ]
}

如您所见,它可能具有多个嵌套元素,这并不理想,但我的问题是如何动态地正确更新状态?我认为使用扩散运算器会很困难,因为我不知道会有多少层嵌套状态。

当某个元素发生移动时,例如某个元素移到另一个部分,或者某个部分中正在移动某些东西,我将更新元素的位置,如下所示:

currentState = this.state.body;
newState = currentState.slice();
//here im updating what ever I want in newState array like swapping elements
this.setState({body: newState})

这行得通还是有更好的解决方案?数组会有新的引用,但是数组中的对象呢?

0 个答案:

没有答案