任何人都可以使用正确的redux store
配置帮助我吗?
我正在尝试配置如下,
configureStore.js
import thunk from 'redux-thunk';
import logger from 'redux-logger';
import { createStore, applyMiddleware } from 'redux';
import rootReducer from '../reducers';
let middlewares = [thunk, logger]
const configureStore = () => {
const store = createStore(
rootReducer,
applyMiddleware(...middlewares) // I also tried with applyMiddleware(thunk, logger)
);
return store;
}
export default configureStore;
我导入此模块主js文件并使用如下,
index.js
import configureStore from '../stores/configureStore';
const store = configureStore();
// And other DOM render code follows...
但似乎无效,并且Web控制台中显示以下错误
错误:未捕获TypeError: WEBPACK_IMPORTED_MODULE_0__撰写 .a.apply(...)不是函数
我正在关注redux
,redux-thunk
和redux-logger
的官方文档,但无法使其正常运行。
另一个注意事项:当我从中间件列表中删除thunk
和logger
中的任何一个时,它工作正常。
更新:我获得了临时修复
将redux
从3.7.2
降级为3.5.2
的工作正常。
我仍然想知道为什么最新版本的Redux
存在问题。我尝试添加与该问题相关的更多信息,并为将来的升级寻找解决方案。
谢谢!
答案 0 :(得分:0)
你犯了一个小错误。
来自官方docs,这是createStore的签名:
createStore(reducer, [preloadedState], [enhancer])
你混淆了参数的顺序,传递你的增强函数(applyMiddleware),其中函数期望preloadedState。您需要在rootReducer和applyMiddleware函数之间传入一个参数,以满足签名。
希望这有帮助!