redux store 安装 redux-saga 后创建 store 时出错
Posted
技术标签:
【中文标题】redux store 安装 redux-saga 后创建 store 时出错【英文标题】:redux store Error while creating store after installing redux-saga 【发布时间】:2021-03-17 18:45:39 【问题描述】:我想在我的项目中使用 redux-saga,安装 redux-saga 后,当我在 store.js 文件中进行更改时会报错
错误:您似乎将几个存储增强器传递给 createStore()。这是不支持的。相反,将它们组合成一个函数。
# store.js
import createStore, applyMiddleware, compose from 'redux';
import composeWithDevTools from 'redux-devtools-extension';
import thunk from 'redux-thunk';
import rootReducer from './reducers'
import createSagaMiddleware from 'redux-saga';
import rootSaga from './actions/sagas';
const sagaMiddleware = createSagaMiddleware();
const composeEnhancers =
typeof window === 'object' &&
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__(
// Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize...
) : compose;
const enhancer = composeEnhancers(
applyMiddleware(sagaMiddleware)
);
const initialState = ;
const middleware = [thunk];
const store = createStore(
rootReducer,
initialState,
enhancer,
composeWithDevTools(applyMiddleware(...middleware))
);
sagaMiddleware.run(rootSaga);
export default store;
我对商店了解不多。请看看你能不能帮忙。
【问题讨论】:
【参考方案1】:你正在编写你的开发工具和中间件两次,只使用两者之一。
const store = createStore(
rootReducer,
initialState,
// either this line
enhancer,
// or this line
composeWithDevTools(applyMiddleware(...middleware))
);
另外,仅供参考:这是一种相当过时的 redux 风格。如果您现在正在学习 redux 并遵循这种方法,您将编写大量不必要的样板文件。请关注the official redux documentation 上的官方 redux 教程,而不是你现在正在学习的任何教程。
【讨论】:
以上是关于redux store 安装 redux-saga 后创建 store 时出错的主要内容,如果未能解决你的问题,请参考以下文章
使用 redux-saga 对 redux store 进行异步调用
如何使用 redux-saga 在 getInitialProps 中获取数据。然后在 getInitialProps 方法中从 redux store 获取响应?