首先目录结构如下
├─redux
│ │ store.js
│ │
│ └─slices
│ userSlice.js
store.js
import { configureStore, combineReducers } from "@reduxjs/toolkit";
import userSlice from "./slices/userSlice";
const rootReducer = combineReducers({
userSlice,
});
const store = configureStore({
reducer: rootReducer,
});
export default store;
userSlice.js
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
loginState: false,
accessToken: "",
userId: "",
};
const userSlice = createSlice({
name: "userReducer",
initialState,
reducers: {
setLogin: (state, action) => {
state.loginState = true;
state.accessToken = action.payload;
},
},
});
export const { setLogin } = userSlice.actions;
export default userSlice;
每个代码如下所示
我需要更多的reducer,所以我使用了combineReducer,并通过configureStore连接了reducer,但仍然出现以下错误
存储区没有有效的reducer。请确保传递给combineReducers的参数是其值为reducer的对象。
我不知道哪一个有问题。
1条答案
按热度按时间x0fgdtte1#
因为你传递的是一个
slice
到combineReducers(...)
,而slice
!==reducer
。在您的
userSlice.js
中,您可能想要将最后一行变更为:你可以看一下文档:https://redux-toolkit.js.org/api/createSlice
生成的reducer函数适合作为“切片reducer”传递给Redux combineReducers函数。