function* rootSaga() {
yield all(sagas.map(saga => fork(saga)));
}
sagaMiddleware.run(rootSaga);
在上面的代码sagas
中是生成器函数的数组,它们仍按预期运行。我是redux saga的新手,所以我可能没有提供相关信息,但是我遵循了许多指南,尽管它们都说相同,但是我仍然收到
[...effects] has been deprecated in favor of all([...effects]), please update your code
我通过以下方式导入redux-saga函数
import { all, fork } from 'redux-saga/effects';
我这里缺少什么吗?一切正常,但我收到此弃用警告。
答案 0 :(得分:1)
看来您应该应该工作。 fork
是一个效果,all
效果是一个对象字典或一个效果数组。在较低的级别,我很确定这意味着all
效果在两种情况下都期望生成器。在redux-saga的beginner tutorial page上,它们的根目录如下:
function* helloSaga() {
console.log('Hello Sagas!')
}
function* watchIncrementAsync() {
yield takeEvery('INCREMENT_ASYNC', incrementAsync)
}
export default function* rootSaga() {
yield all([
helloSaga(),
watchIncrementAsync()
])
}
这里要注意的是,在根传奇数组helloSaga
和watchIncrementAsync
中就地执行,并且每个返回一个生成器。在您的示例中,您返回的是fork
,但这本质上应该是同一件事。我最好的猜测是您的地图实际上并未返回一系列效果。