Redux アクション作成者は状態にどのようにアクセスする必要がありますか: ストアまたはサンクから?

Barbara Streisand
リリース: 2024-10-21 18:48:29
オリジナル
435 人が閲覧しました

How Should Redux Action Creators Access State: From Store or Thunk?

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() によるストア状態の取得が可能になります。サンクはクライアントとサーバーの両方でシームレスに動作し、状態へのアクセスが特定のアクションに分離されるようにします。

考慮事項:

  • Redux 作成者の視点: アクション作成者による状態アクセスは、変更履歴をわかりにくくする可能性があるため、通常は推奨されません。
  • Redux メンテナの観点: このようなユースケース向けに特別に設計された機能を活用するため、サンク内で getState を使用することが推奨されます。 .

最終的には、両方のアプローチで望ましい結果が得られますが、潜在的な落とし穴を回避し、環境間で一貫性を維持するには、アプローチ 2 が推奨されるベスト プラクティスです。

以上がRedux アクション作成者は状態にどのようにアクセスする必要がありますか: ストアまたはサンクから?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!