我正在尝试创建一个存储,并将redux-saga中间件应用于它。我已经配置了所有的东西,但是当我运行这个项目时,会弹出下面的错误。
***Error: Before running a saga, you must mount the saga middleware on the store
using applyMiddleware我错误地锁定了在线sagaMiddleware.run(sagas);。
store.js
import { createStore, applyMiddleware, compose } from 'redux';
import { createLogger } from 'redux-logger';
import createSagaMiddleware from 'redux-saga';
import sagas from '../redux/sagas';
const logger = createLogger({
predicate: (getState, action) => isDebuggingInChrome,
collapsed: true,
duration: true,
diff: true,
});
export default function configureStore() {
const sagaMiddleware = createSagaMiddleware();
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(
applyMiddleware(sagaMiddleware, logger),
);
sagaMiddleware.run(sagas);
return store;
}知道我做错什么了吗?
react-native: 0.57.0
redux-saga: ^0.16.0
redux: ^4.0.0发布于 2018-09-21 14:26:20
这是因为您没有正确地创建store,请注意,您没有传递rootReducer
createStore是一个增强器,它返回一个函数,该函数将rootReducer作为参数,其结果是store。
你可能想做这样的事情,而不是:
import { createStore, applyMiddleware, compose } from 'redux';
import { createLogger } from 'redux-logger';
import createSagaMiddleware from 'redux-saga';
import sagas from '../redux/sagas';
import rootReducer from '../redux/rootReducer';
const logger = createLogger({
predicate: (getState, action) => isDebuggingInChrome,
collapsed: true,
duration: true,
diff: true,
});
const enhancers = process.env.NODE_ENV !== 'production' && window.devToolsExtension
? [window.devToolsExtension()]
: [];
export default function configureStore() {
const sagaMiddleware = createSagaMiddleware();
const store = compose(
applyMiddleware(sagaMiddleware, logger),
...enhancers
)(createStore)(rootReducer);
sagaMiddleware.run(sagas);
return store;
}https://stackoverflow.com/questions/52445673
复制相似问题