5

Ngrx と Angular2 を使用してモバイル アプリを構築しています。ユーザーがアプリケーションからログアウトするときにストアをクリアしたいですか? 誰でもこれを行う方法を知ることができますか?

4

3 に答える 3

7

各レデューサーには、ストア内のそれぞれのプロパティを消去する明確なアクションが必要です。を呼び出すときに、各レデューサーのクリア アクションを手動でディスパッチしますlogout。店全体を一度に掃除するオプションがあるかどうかは、今のところわかりません。

代替案:よりクリーンで高速なアプローチがあります。それを介してアクションを呼び出すたびに、store.dispatchそれを使用してすべてのレデューサーを呼び出しますaction.type。アクション タイプ名がCLEARであるとします。このアクションを各レデューサーに配置して、ストアのそれぞれのプロパティをクリアします。そしてONCEで呼び出すstore.dispatchaction.type = 'CLEAR'、ストアのすべてのプロパティがクリアされます。

混乱する場合はお知らせください。コードで説明します。

于 2016-08-26T06:49:09.947 に答える
5

解決策は、ルート レデューサーを作成することです。

これは次のようになります。

export function reducer(state: any, action: any): ActionReducer<any> {
    if (action.type === 'CLEAR STATE') {
        state = undefined;
    }

    return appReducer(state, action);
}

これを確認してください: Redux ストアの状態をリセットするには?

于 2016-12-27T23:27:59.527 に答える