ホームページ >ウェブフロントエンド >jsチュートリアル >Redux アクション作成者は状態にどのようにアクセスする必要がありますか: ストアまたはサンクから?
Action Creator 内の Redux 状態へのアクセス
質問:
Redux アプリケーションでは、どのようにアクション クリエーター内からグローバル ストアの状態にアクセスできますか?次のアプローチは適切ですか?
アプローチ 1:
<code class="javascript">import store from '../store'; export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return { type: SOME_ACTION, items: store.getState().otherReducer.items, } }</code>
アプローチ 2:
<code class="javascript">export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return (dispatch, getState) => { const {items} = getState().otherReducer; dispatch(anotherAction(items)); } }</code>
答え:
アクションクリエイター内での状態へのアクセスの受け入れ可能性は、Redux コミュニティ内で議論の的となっています。
アプローチ 1:
store.getState() を介して状態に直接アクセスすることは、ストアがグローバル シングルトンであることに依存するため、推奨されません。サーバー上では、リクエストごとに個別のストアが存在する可能性があるため、このアプローチには問題があります。
アプローチ 2:
このアプローチは、Redux Thunk ミドルウェアを使用するため推奨されます。非同期アクションと getState() によるストア状態の取得が可能になります。サンクはクライアントとサーバーの両方でシームレスに動作し、状態へのアクセスが特定のアクションに分離されるようにします。
考慮事項:
最終的には、両方のアプローチで望ましい結果が得られますが、潜在的な落とし穴を回避し、環境間で一貫性を維持するには、アプローチ 2 が推奨されるベスト プラクティスです。
以上がRedux アクション作成者は状態にどのようにアクセスする必要がありますか: ストアまたはサンクから?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。