Redux-Saga ES6类语法方法在调度操作时不会被调用

时间:2018-05-24 05:23:22

标签: redux generator redux-saga es6-class

使用redux saga已经将类中的所有方法都实现为静态方法 下面是代码。

当调度动作FETCH_POST时,也会注册rootSaga静态方法,它永远不会执行fetchAuthorSaga,因此对web api的调用永远不会发生,而是转到reducer,其中检查时的类型显示没有数据的FETCH_POST。我在这里失踪了什么?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

() => SagaAuthor.fetchAuthorSaga是" noop"。您正在传递一个返回生成器的函数,但它必须是一个生成器本身。

应为takeEvery('FETCH_POST', SagaAuthor.fetchAuthorSaga)

Docs

  

takeEvery(pattern, saga, ...args) ... saga: Function - 生成器   功能

您需要在rootSaga

中执行以下操作
yield all([
   call(SagaAuthor.onBootstrap) // should be effect 
])

另外"已经将类中的所有方法都实现为静态方法"这种方法没有多大意义。为什么你需要一个没有实例的类?只需使用object literal或模块本身。