在Redux中,是否需要进行深度复制

下面的对象action.data有一个嵌套对象address

{

name: 'Ben',

address: {

country: 'Australia',

state: 'NSW'

}

}

我应该如何在减速器中处理它?

const rootReducer = (state = initState, action) {

switch(action.type) {

switch RECEIVE_DATA:

return {...state, data: action.data}

}

}

我可以如上所述做吗?我只是将整个对象分配给它data而不进行复制?

要么

const rootReducer = (state = initState, action) {

switch(action.type) {

switch RECEIVE_DATA:

const address = {...action.data.address}

const data = {...action.data, address}

return {...state, data}

}

}

还是应该对对象进行深层复制并将其分配给data?谢谢

回答:

处理嵌套数据更新的“正确”方法是使用多个浅表副本,每个浅层副本一个。按照您的第一个示例,完全可以完全替换一个字段的新对象当然也可以。

有关如何正确执行不可变更新的一些信息,请参阅不可变更新模式的Redux文档部分,以及有关深度克隆的Redux FAQ条目。

以上是 在Redux中,是否需要进行深度复制 的全部内容, 来源链接: utcz.com/qa/414432.html

回到顶部