我想更新状态并尝试了几种方法来做到这一点,但我不能。首先,我在获取状态时遇到问题,因此,我得到的是代理,而不是状态。
current()这是由 redux 工具包的函数修复的。接下来,我遇到的问题是突变主切片状态。
这是一个用于变异的减速器。
reducers: {
setUser: (state, payload) => {
console.log("before", current(state)); //init state
state.currentUser = {
...state.currentUser,
loggined: true,
};
console.log("after", current(state)); // here I have new state but...
},
clearUser: (state) => {},
},
Run Code Online (Sandbox Code Playgroud)
结果,作为第二个控制台日志,当我想更改页面或只是想通过 useSelector()redux 函数对状态中的新数据执行某些操作时,我必须声明我想要的内容,结果,我变老了,没有改变状态。
为什么会发生这种情况?
切片状态示例:
initialState: {
currentUser: {
loggined: false,
isAdmin: false,
jwt: false,
},
},
Run Code Online (Sandbox Code Playgroud)
谢谢!