带有 Redux 工具包的 redux-saga - 没有效果 运行
redux-saga with Redux Toolkit - effects do not run
我有 @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)
很确定你需要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
也可能“阻止”传奇继续到达岔路口?不确定这里的传奇语义。
我有 @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)
很确定你需要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
也可能“阻止”传奇继续到达岔路口?不确定这里的传奇语义。