【发布时间】:2021-01-01 05:23:37
【问题描述】:
我在我的 react 项目中使用 redux-toolkit。在 createSlice 的化简器中,我想使用状态中现有的实体数组并附加新数组,然后再减少最终状态。但我无法获得状态值。
这里是reducer代码
export const usersSlice = createSlice({
name: "users",
initialState: initialUsersState,
reducers: {
usersCreated: (state: UsersState, action) => {
// in real, return count from the server and append the entities on front-end only?
const { count, entities } = action.payload;
const existingEntities = state.entities;
const newEntities = [...existingEntities, ...entities];
const totalCount = state.totalCount+count;
return {
...state,
entities: newEntities,
totalCount: totalCount,
listLoading: false,
error: null,
};
},
}});
当我调试 state.entites 变量时,它看起来像这样
有没有办法访问 reducer/extraReducer 中的当前状态值以根据需要重新创建状态?
因为我认为在 reducer 之外直接使用状态值是一种不好的做法。如果我错了,请指导我。
编辑
@Linda Paiste 创建的 code sandbox 工作正常,这意味着我们可以访问 reducer 中的状态变量,但我们无法调试状态变量以更深入地挖掘该状态变量目前持有的内容,因为Redux-toolkit 正在以自己的方式处理状态...... 从调试截图中可以明显看出
【问题讨论】:
-
我今天会尝试创建一个代码沙箱并在此处链接。
-
@karlmarxlopez 仍在等待您的输入 :)
-
它说赏金有 15 小时的宽限期。但我不清楚你想要实现什么。只是为了更好地调试吗?您可以使用 Redux DevTools 扩展名,这似乎对我有用。我按照@karlmaxlopex 的建议查看了 Immer 文档,this page 解释了先前的状态如何是“草稿”而不是实际对象。所以你不能 console.log 它但是有一个通过 JSON 的解决方法。
标签: javascript reactjs typescript redux redux-toolkit