基于create-react-app的应用程序不适用于redux-saga

时间:2018-04-12 11:40:18

标签: create-react-app redux-saga

我正在开发基于create-react-app的应用程序。我需要将redux-saga添加到堆栈中并且它不起作用。

我在商店中添加了sagaMiddleware:

import createSagaMiddleware from 'redux-saga';
import sagas from './sagas';

const sagaMiddleware = createSagaMiddleware();
const middlewares = [sagaMiddleware, createDebounce(), thunk, exponentialRetry, routerMiddleware(history)];
const store = createStore(reducer, composeEnhancers(applyMiddleware(...middlewares)));
store.runSaga = sagaMiddleware.run(sagas);

我有一个动作,会在componentDidMount上发送。我可以看到它是在reducer中发送的,它也会监听这个动作。

我有一个传奇文件:

import { takeLatest } from 'redux-saga/effects';
import { FETCH_TASK } from './types';

export function* fetchTaskById(id) {
  console.log('id', id);
}

export default function*() {
  yield takeLatest(FETCH_TASK, fetchTaskById);
}

我有一个文件,它在一个rootSaga中收集来自不同文件的所有传闻并在商店中导入:

import { fork, all } from 'redux-saga/effects';
import TaskFormSaga from './containers/task-form/sagas';

const sagas = [...TaskFormSaga];

export default function* rootSaga() {
  yield all(sagas.map(fork));
}

从代码角度看,一切看起来都很好,但fetchTaskById传奇从未被调用过。此外,如果我在saga的导出默认功能中添加console.log,它永远不会写在控制台上。

我很感激提示可能出现的问题。

0 个答案:

没有答案