Redux-saga与Redux Toolkit-效果无法运行

时间:2020-10-20 12:58:18

标签: redux redux-saga redux-toolkit reduxjs-toolkit

我有一个@reduxjs/toolkitredux-saga的CRA设置。

主传奇确实运行。但是,本应在takeEveryfork上运行的子传奇似乎根本没有运行。

传奇:

export function* saga() {
  console.log('main'); //logs

  fork(function* () {
    console.log('fork') //doesn't log
  });
}

商店:

const sagaMiddleware = createSagaMiddleware();
const store = configureStore({
  reducer: state => {
  },
  middleware: defaultMiddleware => defaultMiddleware().concat(sagaMiddleware)
});

sagaMiddleware.run(saga);

Repo link.(CRA +工具包+ redux-saga除外)

Related reduxjs/toolkit issue.

1 个答案:

答案 0 :(得分:2)

很确定您需要yield这两个效果才能使它们执行任何操作:

export function* saga() {
  console.log('main'); //runs

  yield takeEvery('*', function*() {
    console.log('takeEvery') //doesnt run
  })

  yield fork(function* () {
    console.log('gen') // doesnt run
  });
}

我认为yield takeEvery可能还会“阻止”传奇故事继续到达分叉?不确定此处的传奇语义。