1
我正在Redux网站上学习Redux教程,但我在使用合并reducers时遇到了困难。如果我在没有combined reducers的情况下运行代码,它会正常工作。一旦我将单个reducers放入combined reducers函数中,我会得到以下结果:错误:“reducer”是必需的参数,并且必须是一个函数或函数的对象,才能传递给combineReducers。我做错了什么?
以下是合并减速机使用前的存放
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;
1条答案
按热度按时间niknxzdl1#
作为第一个观察结果:您不需要手动添加
thunk
中间件、调用composeWithDevTools
或调用applyMiddleware
-configureStore
API已经为您完成了 * 所有 * 这些操作!更具体地说,在这种情况下:我们通常将顶层归约器函数称为“根归约器”来对其进行分类。
然而:
configureStore
期望你将其作为**一个名为reducer
*的字段传递,而你传递的是一个名为rootReducer
的字段。把它改成
reducer: rootReducer
,它就能工作了。就这一点而言,它是
preloadedState
,而不是initialState
。但是,
configureStore
* 也会 * 自动为您调用combineReducers
, 并且 * 您不需要提供空对象。