我正在构建一个 React 和 Node.js 应用程序。 在前端的 src 文件夹中,有一个名为 store 的文件夹,其中包含一个名为 index.js 的文件,该文件调用根减速器
index.js
import { configureStore, applyMiddleware } from "@reduxjs/toolkit";
import {thunk} from 'redux-thunk'
import rootReducer from './reducers'
const store = configureStore(rootReducer, applyMiddleware(thunk))
export default store
reducer 代码位于 store 文件夹内名为 reducers 的文件夹中名为 index.js 的文件中
减速机代码
import { combineReducers } from "redux";
import authReducer from "./auth";
export default combineReducers({
// auth: authReducer This did not work either
authReducer
})
vscode 中的终端显示 webpack 编译成功。 浏览器显示白屏,控制台显示以下内容
configureStore.ts:106 Uncaught Error: `reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers
at configureStore (configureStore.ts:106:1)
at ./src/store/index.js (index.js:5:1)
at options.factory (react refresh:6:1)
at __webpack_require__ (bootstrap:22:1)
at fn (hot module replacement:61:1)
at ./src/index.js (Chat.js:17:1)
at options.factory (react refresh:6:1)
at __webpack_require__ (bootstrap:22:1)
at startup:7:1
at startup:7:1
Redux 工具包 采用单个配置对象,而不是像旧的已弃用的旧版那样的参数数组
createStore
。
const store = configureStore({
reducer: rootReducer,
});
Redux-Toolkit 还附带默认包含并启用的 Thunk 中间件,因此无需显式导入
Thunk
并将其包含在中间件中。
configureStore
需要基于密钥 reducer
,请使用以下内容:
const store = configureStore(
{
reducer: rootReducer
},
applyMiddleware(thunk)
);