gpt4 book ai didi

reactjs - Redux中是否需要进行深拷贝

转载 作者:行者123 更新时间:2023-12-03 13:03:26 25 4
gpt4 key购买 nike

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

{
name: 'Ben',
address: {
country: 'Australia',
state: 'NSW'
}
}

在reducer中应该如何处理?

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?谢谢

最佳答案

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

请参阅有关 Immutable Update Patterns 的 Redux 文档部分有关如何正确执行不可变更新的一些信息,以及有关 deep cloning 的 Redux FAQ 条目.

关于reactjs - Redux中是否需要进行深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43151622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com