在React组件中管理Redux传奇观察者的生命周期

时间:2018-09-25 12:47:00

标签: redux-saga

我最近开始在使用redux-saga的项目中工作。

这是我们如何在ui组件中初始化sagas。

public componentDidMount() {
    sagaMiddleware.run(softwareLicenseCodesSagas);
}

通过阅读一些文档(https://redux-saga.js.org/docs/api/),我了解到此方法将返回具有task description方法的cancel

我们不会存储这些task descriptors,因此我们永远不会在它们上运行cancel。这有问题吗?

我的猜测是,每次安装ui组件时,sagaMiddleware.run()会将事件监视程序添加到store上,当组件卸载时,事件监视程序将被孤立。是一个问题。

如果有问题,有什么更好的方法来管理React组件中的传奇观察者的生命周期?

我的猜测是我们应该这样做:

public componentDidMount() {
    sagasTaskRunner = sagaMiddleware.run(softwareLicenseCodesSagas);
}

public componentWillUnmount() {
    sagasTaskRunner.cancel();
}

0 个答案:

没有答案