让我说我的初始状态如下:
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})
这行得通还是有更好的解决方案?数组会有新的引用,但是数组中的对象呢?