我的应用程序有两个部分。它们各自都有自己的 saga 中间件,但两者永远不会同时实例化。总是一个或另一个。例如,一个处理登录的传奇和另一个处理主页的传奇。
我想知道在应用程序的两个部分之间导航时应该如何拆除 redux 传奇。我应该让它被垃圾收集吗?但是,如果仍有队列中的操作怎么办?这些操作仍然需要从缓冲区中清除。
您可以在位置更改时取消观察者。所以你的观察者的代码将是这样的:
import { takeLatest, take, cancel } from 'redux-saga/effects';
import { LOCATION_CHANGE } from 'react-router-redux';
function* watchTheRequest() {
const watcher = yield takeLatest('SOME_TYPE', callMySaga);
yield take(LOCATION_CHANGE);
yield cancel(watcher);
}
Run Code Online (Sandbox Code Playgroud)
因此,当您从一个部分移动到另一部分时,观察者将被取消。当您移动到该路线时,您可以重新注入观察者。
| 归档时间: |
|
| 查看次数: |
2782 次 |
| 最近记录: |