使用存储.使用redux工具箱片调度



我有一个redux工具包切片如下

import { createSlice } from '@reduxjs/toolkit';
const initialState = {
value: null,
};
export const authSlice = createSlice({
name: 'auth',
initialState,
reducers: {
setAuth: (state, action) => {
state.value = action.payload;
},
},
});
export const { setAuth } = authSlice.actions;
export default authSlice.reducer;

我可以使用useDispatch函数组件如下setAuth

const dispatch = useDispatch();
const auth = useSelector((state) => state.auth.value);
const setAuthValue = (value) => {
dispatch(setAuth(value));
};

然而,我有一个场景,我不能为此useDispatch钩子。(例如:inside axios interceptor)

是否有可能我直接使用store.dispatch({'type': '', payload: {}}像正常的redux与上面的redux工具箱切片?

或有什么更好的方法吗?

我也有同样的问题,只是让它工作。在纯js文件中(在组件函数上下文之外),只需导入从切片导出的setAuth操作。然后,您可以像这样调度它:store.dispatch(setAuth(payload))

这是useDispatchreact-redux库中的函数:

function useDispatch() {
const store = useStore()
return store.dispatch
}

您可以从store.js导出存储,并使用store.dispatch

最新更新