首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redux-saga:配置存储的错误

Redux-saga:配置存储的错误
EN

Stack Overflow用户
提问于 2018-09-21 14:17:35
回答 1查看 825关注 0票数 1

我正在尝试创建一个存储,并将redux-saga中间件应用于它。我已经配置了所有的东西,但是当我运行这个项目时,会弹出下面的错误。

代码语言:javascript
复制
***Error: Before running a saga, you must mount the saga middleware on the store
using applyMiddleware

我错误地锁定了在线sagaMiddleware.run(sagas);

store.js

代码语言:javascript
复制
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;
}

知道我做错什么了吗?

代码语言:javascript
复制
react-native: 0.57.0
redux-saga: ^0.16.0
redux: ^4.0.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-21 14:26:20

这是因为您没有正确地创建store,请注意,您没有传递rootReducer

createStore是一个增强器,它返回一个函数,该函数将rootReducer作为参数,其结果是store

你可能想做这样的事情,而不是:

代码语言:javascript
复制
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;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52445673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档