Redux Toolkit中Reducer内更新State的方式是否正确?
Redux Toolkit Reducer 更新方式合规性解答
你这段代码中Reducer内更新State的写法完全合规,完全符合Immer的规则要求。
Redux Toolkit的createSlice内置了Immer库,它的核心设计就是允许开发者用"看起来可变"的语法编写状态更新逻辑,底层会自动转换为符合Redux要求的不可变更新操作。你代码里的state.getAllCountries = action.payload.data这类修改属性引用的写法,属于Immer允许的"直接修改State"的场景——不管是修改属性的原始值,还是将属性引用从null替换为新的数据对象/数组,Immer都能正确追踪这些变化,自动生成对应的不可变新状态。
只有当你需要完全替换整个state对象时,才需要返回新对象;而这种直接修改单个属性的写法,正是Redux Toolkit推荐的简化写法,完全符合规范。
内容的提问来源于stack exchange,提问作者user21934190
相关产品推荐
相关产品推荐

