我有一个@reduxjs/toolkit
和redux-saga
的CRA设置。
主传奇确实运行。但是,本应在takeEvery
或fork
上运行的子传奇似乎根本没有运行。
传奇:
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除外)
答案 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
可能还会“阻止”传奇故事继续到达分叉?不确定此处的传奇语义。