Redux Saga-不推荐使用[... effects],而推荐所有人使用[[... effects]),请更新您的代码

时间:2018-08-29 15:40:55

标签: javascript redux redux-saga

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';

我这里缺少什么吗?一切正常,但我收到此弃用警告。

1 个答案:

答案 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()
  ])
}

这里要注意的是,在根传奇数组helloSagawatchIncrementAsync中就地执行,并且每个返回一个生成器。在您的示例中,您返回的是fork,但这本质上应该是同一件事。我最好的猜测是您的地图实际上并未返回一系列效果。