--未捕获错误:"reducer" 是必需的参数,并且必须是可以传递给组合化简器的函数或函数的对象



1

我正在遵循Redux网站上的Redux教程,我在使用联合收割机减速器时遇到了困难。如果我在不使用联合收割机减速器的情况下运行代码,它运行得很好。我一把单个减速器放入组合减速器的功能中。我得到这个:错误:";减速器";是必需的参数,并且必须是一个函数或可以传递给组合Reducers的函数对象。我做错了什么?

这是使用联合收割机减速器之前的商店

import {configureStore , combineReducers} from "@reduxjs/toolkit"
import { applyMiddleware } from "redux";
import thunk from "redux-thunk";
import { composeWithDevTools } from "redux-devtools-extension";
import { productReducer } from "./reducers/productReducer";
const rootReducer = combineReducers({
products:productReducer
});
let initialState = {};
const middleware = [thunk];
const store = configureStore(
rootReducer,
initialState,
composeWithDevTools(applyMiddleware(...middleware))
);
export default store;

作为第一个观察:您不需要手动添加thunk中间件、调用composeWithDevTools或调用applyMiddleware-configureStoreAPI已经为您完成了所有

更具体地说,在这种情况下:我们通常将顶级reducer函数称为"reducer";根部减速器";对其进行分类。

但是:configureStore希望您将其作为传递一个名为reducer的字段,而不是传递一个名称为rootReducer的字段。因此,它正确地指出了没有提供reducer参数。

将其更改为reducer: rootReducer即可工作。

就这一点而言,它是preloadedState,而不是initialState

但是,configureStore也会自动为您调用combineReducers,和您不需要提供空对象。所以这整件事可能真的很短:

import {configureStore , combineReducers} from "@reduxjs/toolkit"
import { productReducer } from "./reducers/productReducer";
const store = configureStore({
reducer: {
products: productReducer
},
});
export default store;

相关内容

  • 没有找到相关文章

最新更新