【发布时间】:2018-05-24 05:23:21
【问题描述】:
使用 redux saga 已将类中的所有方法实现为静态方法 下面是代码。
在调度操作 FETCH_POST 时也注册 rootSaga 静态方法,它从不执行 fetchAuthorSaga,因此对 web api 的调用永远不会发生,而是转到减速器,当检查类型时显示 FETCH_POST 没有数据。我在这里错过了什么?
【问题讨论】:
标签: redux generator redux-saga es6-class
使用 redux saga 已将类中的所有方法实现为静态方法 下面是代码。
在调度操作 FETCH_POST 时也注册 rootSaga 静态方法,它从不执行 fetchAuthorSaga,因此对 web api 的调用永远不会发生,而是转到减速器,当检查类型时显示 FETCH_POST 没有数据。我在这里错过了什么?
【问题讨论】:
标签: redux generator redux-saga es6-class
() => SagaAuthor.fetchAuthorSaga 是一个“noop”。您正在传递一个返回生成器的函数,但它本身必须是生成器。
应该是takeEvery('FETCH_POST', SagaAuthor.fetchAuthorSaga)
takeEvery(pattern, saga, ...args)...saga: Function- 生成器 功能
而你需要在rootSaga中做如下操作
yield all([
call(SagaAuthor.onBootstrap) // should be effect
])
此外,“已将类中的所有方法实现为静态方法”这种方法没有多大意义。为什么你需要一个没有实例的类?只需使用对象字面量或模块本身。
【讨论】: