我正在更新signupData
的状态,但更新后它仍然显示null
。
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
signupData: null,
};
const authSlice = createSlice({
name: "auth",
initialState: initialState,
reducers: {
setSignupData(state, value) {
console.log("payload:",value.payload)
state.signupData = value.payload;
},
},
});
export const { setSignupData } = authSlice.actions;
export default authSlice.reducer;
dispatch(setSignupData(userSignUpData));
console.log("user signup data", userSignUpData)
console.log("sign up data set to :", signupData)
可以看到,payload
和用户注册数据具有有效值,但在状态更新后注册数据仍然是null
。
signupData value
1条答案
按热度按时间bq3bfh9z1#
问题
这看起来只是一个过时的闭包问题,在函数回调中,从存储区选择的
signupData
状态上,调用一个动作来更新状态。陈旧与当前状态访问演示
建议方案
您有几个选项来访问当前状态:
1.使用
useEffect
钩子和状态依赖项来记录值或发出任何其他有意的副作用。1.导入
store
对象并调用store.getState()
访问当前状态。如果你真的想做的只是检查/验证/验证状态是否因调度操作而更新,那么你应该确保你没有禁用Redux-DevTools,并安装了允许你检查商店的浏览器扩展。