在使用 redux 的工具包更新 slice 的 reducer 中的状态时,我遇到了循环引用的问题,例如:
const aSlice = createSlice({
...
extraReducers: builder => {
...,
builder.addCase(addToState.fulfilled, (state, action) => {
state.data = {
...state.data,
...action.payload.data
};
});
...,
}
});
因此导致...state.data
返回一个代理引用而不是返回的值,这是提到的陷阱之一,Redux Toolkit 文档以及Immer.js 的陷阱部分。
我可以想出一些方法来解决这个问题,但是,我想知道它们是否是解决这个问题的最佳实践或任何优雅的方式来完成这项工作?