2017-01-06 25 views
2

私は私のアプリケーションの2つのセクションがあります。彼らはそれぞれ独自のサガミドルウェアを持っていますが、どちらも同時にインスタンス化されることはありません。それは常にどちらか一方です。たとえば、ログインを処理するサガ、メインページを処理するサガなどがあります。redux sagaを停止/終了/分解する方法は?

私のアプリの2つのセクションの間をナビゲートするとき、私はreduxサガをどのように破るべきかと思います。私はちょうどそれがゴミ収集されることになっていますか?しかし、待ち行列に入っているアクションがまだある場合はどうなりますか?これらのアクションは、まだバッファからフラッシュされる必要があります。

答えて

0

あなたは場所の変更に関するウォッチャーをキャンセルできます。したがって、ウォッチャーのコードは次のようになります。

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); 
} 

したがって、あるパートから別のパートに移動すると、ウォッチャーはキャンセルされます。ウォッチャーをそのルートに移動すると、ウォッチャーを再注入できます。

関連する問題