2
我有我的應用程序的兩個部分。他們每個人都有自己的傳奇中間件,但兩者都不會同時實例化。它總是一個或另一個。例如,一個處理登錄的傳奇和另一個處理主頁面的傳奇。如何停止/結束/拆解REDX傳奇?
我想知道在我的應用程序的兩個部分之間導航時,我應該如何拆卸REDX傳奇。我應該讓它只是垃圾收集?但是如果仍有行動在隊列中呢?這些操作仍然需要從緩衝區中清除。
我有我的應用程序的兩個部分。他們每個人都有自己的傳奇中間件,但兩者都不會同時實例化。它總是一個或另一個。例如,一個處理登錄的傳奇和另一個處理主頁面的傳奇。如何停止/結束/拆解REDX傳奇?
我想知道在我的應用程序的兩個部分之間導航時,我應該如何拆卸REDX傳奇。我應該讓它只是垃圾收集?但是如果仍有行動在隊列中呢?這些操作仍然需要從緩衝區中清除。
你可以取消你的位置變化的觀察者。因此,對於你守望者的代碼將是這樣的:
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);
}
所以,當你從一個部分移動到另一個時,觀察家將被取消。移動到該路線時,您可以重新注入觀察者。