Redux存储没有有效的Reducer(combineReducer错误)

fjaof16o  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(166)

首先目录结构如下

├─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的对象。

我不知道哪一个有问题。

x0fgdtte

x0fgdtte1#

因为你传递的是一个slicecombineReducers(...),而slice!== reducer
在您的userSlice.js中,您可能想要将最后一行变更为:

// export default userSlice;
export default userSlice.reducer;

你可以看一下文档:https://redux-toolkit.js.org/api/createSlice
生成的reducer函数适合作为“切片reducer”传递给Redux combineReducers函数。

相关问题