[解決済み] redux-sagaでgetState?
2023-04-24 06:25:14
質問
私は、アイテムのリストを持つストアを持っています。アプリが最初にロードされたとき、アイテムに基づいていくつかのインメモリオブジェクトを作成するように、アイテムをデシリアライズする必要があります。アイテムは私のreduxストアに格納され、そのストアは
itemsReducer
.
を使おうとしているのですが redux-saga を使ってデシリアライズを処理しようとしています。最初のページロード時に、私はアクションをディスパッチします。
dispatch( deserializeItems() );
私のサーガはシンプルに設定されています。
function* deserialize( action ) {
// How to getState here??
yield put({ type: 'DESERISLIZE_COMPLETE' });
}
function* mySaga() {
yield* takeEvery( 'DESERIALIZE', deserialize );
}
私のdeserialize sagaでは、アイテムのインメモリバージョンを作成するという副作用を処理したいので、ストアから既存のデータを読み込む必要があります。ここでそれをどのように行うか、あるいはredux-sagaで試みるべきパターンであるかどうか、よくわかりません。
どのように解決するのですか?
を使用することができます。 効果を選択する
import {select, ...} from 'redux-saga/effects'
function* deserialize( action ) {
const state = yield select();
....
yield put({ type: 'DESERIALIZE_COMPLETE' });
}
また、セレクタで使用することもできます。
const getItems = state => state.items;
function* deserialize( action ) {
const items = yield select(getItems);
....
yield put({ type: 'DESERIALIZE_COMPLETE' });
}
関連
-
[解決済み] Reduxのアクションをタイムアウトでディスパッチする方法とは?
-
[解決済み] Reduxの非同期フローになぜミドルウェアが必要なのか?
-
[解決済み] ES6 ジェネレータで redux-saga を使用する利点/欠点と ES2017 async/await で redux-thunk を使用する利点/欠点
-
[解決済み】Reduxで非同期アクションを実行するモーダルダイアログを表示するにはどうすればよいですか?
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] Node.jsのES6クラスをrequireで作る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]