在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