将redux sagas分成文件的正确方法是什么?

时间:2017-08-14 07:15:08

标签: reactjs redux redux-saga

我无法找到如何做到这一点的可靠来源。

我正在尝试以下列形式构建我的应用程序:

  • 容器1
    • container.js
    • reducer.js
    • selectors.js
    • sagas.js
  • 容器2
    • container.js
    • reducer.js
    • selectors.js
    • sagas.js

并且有一个根源传奇文件只会导入所有子传奇并让事情发生。

我的典型传奇文件如下所示:

/**
 * watch something
 */
function* watchSomething() {
    yield takeLatest(GET_SOMETHING, callGetSomething);
}

export const somethingSagas =  [
    watchSomething
];

export default watchSomething;

我的根源传奇:

import JolterSagas from '/path/to/container/sagas';

export default function* root() {
    yield all([
        SomethingSagas.map((saga) => fork(saga))
    ]);
};

虽然有效,但我在控制台中收到以下内容:

  

[...效果]已被弃用以支持所有([...效果]),请更新您的代码

无论我如何更改代码,它都无法正常工作或继续打印此警告。

我无法找到任何最新的可靠文档来说明如何执行此操作,官方文档中的所有示例都很小且只有一个。

感谢。

1 个答案:

答案 0 :(得分:1)

我猜您要从takeEvery导入takeLatestredux-saga 您必须从takeEvery

导入takeLatestredux-saga/effects
import { takeEvery, takeLatest, fork } from `redux-saga/effects`

yield all(SomethingSagas.map((saga) => fork(saga)));

并且没有正确方式来构建你的传奇。它取决于您的项目,编码风格。