未捕获的错误:`reducer`是必需参数,并且必须是可以传递给combineReducers的函数或函数对象

问题描述 投票:0回答:2

我正在构建一个 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
javascript reactjs node.js redux
2个回答
0
投票

Redux 工具包 采用单个配置对象,而不是像旧的已弃用的旧版那样的参数数组

createStore

const store = configureStore({
  reducer: rootReducer,
});

Redux-Toolkit 还附带默认包含并启用的 Thunk 中间件,因此无需显式导入

Thunk
并将其包含在中间件中。


0
投票

configureStore
需要基于密钥
reducer
,请使用以下内容:

const store = configureStore(
    {
        reducer: rootReducer
    },
    applyMiddleware(thunk)
);
© www.soinside.com 2019 - 2024. All rights reserved.