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

问题描述 投票:0回答:1

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

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

enter image description here

enter image description here

redux generator redux-saga es6-class
1个回答
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或模块本身。

© www.soinside.com 2019 - 2024. All rights reserved.