[解決済み] redux-sagaの関数内でstate/storeから何かを取得するにはどうしたらいいですか?
2022-04-27 22:59:32
質問
Sagaの関数内でreduxのステートにアクセスするにはどうすればよいですか?
短い回答です。
import { select } from 'redux-saga/effects';
...
let data = yield select(stateSelectorFunction);
解決方法は?
すでに@markeriksonが言っているように。
redux-saga
は、非常に便利な API を公開しています。
select()
を呼び出すことができます。
selector
を実行し、その一部を佐賀県内で利用できるようにします。
あなたの例では、簡単な実装が可能です。
/*
* Selector. The query depends by the state shape
*/
export const getProject = (state) => state.project
// Saga
export function* saveProjectTask() {
while(true) {
yield take(SAVE_PROJECT);
let project = yield select(getProject); // <-- get the project
yield call(fetch, '/api/project', { body: project, method: 'PUT' });
yield put({type: SAVE_PROJECT_SUCCESS});
}
}
さらに、提案された
doc
は、@markerikson によって、非常に優れた
ビデオチュートリアル
の使い方を説明したD.アブラモフによるものです。
selectors
をReduxで使用することができます。また
これ
のスレッドがあります。
関連
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
JavaScriptのgetElementById、getElementsByTagNam、getElementsByClassNameの違いと使い方
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] コールバック内で正しい `this` にアクセスする方法
-
[解決済み] Reduxの非同期フローになぜミドルウェアが必要なのか?
-
[解決済み] Reduxストアの状態をリセットする方法とは?
-
[解決済み】「GET」パラメータから値を取得する(JavaScript)【重複】。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
vueネットワークリクエストソリューション ネイティブネットワークリクエストとjsネットワークリクエストライブラリ
-
Vueの要素ツリーコントロールに破線を追加する説明
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み] 配列の結合時に未定義のプロパティ 'push' を読み込むことができない
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR