ホームページ  >  記事  >  ウェブフロントエンド  >  Action Creators 内で Redux 状態にアクセスすることが正当化されるのはどのような場合ですか?

Action Creators 内で Redux 状態にアクセスすることが正当化されるのはどのような場合ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-21 18:47:29603ブラウズ

When Is Accessing Redux State Within Action Creators Justified?

Action Creator 内での Redux 状態へのアクセス: 長所と短所

Action Creator 内から Redux ストア状態へのアクセスは、依然として議論のトピックです。

アプローチ 1: ストアのインポート

import store from '../store';
export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return {
    type: SOME_ACTION,
    items: store.getState().otherReducer.items,
  }
}

このアプローチはミドルウェアを回避しますが、モジュールからエクスポートされたシングルトンであるストアに依存します。ただし、サーバー レンダリングではリクエストごとに個別のストアが必要なため、このアプローチは現実的ではありません。

アプローチ 2: getState を使用する

export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return (dispatch, getState) => {
    const {items} = getState().otherReducer;

    dispatch(anotherAction(items));
  }
}

このアプローチでは Redux Thunk を使用する必要があります。

Redux 貢献者からの意見

この件に関する意見は Redux 貢献者によって異なります:

  • Dan Abramov は、変更履歴がわかりにくくなり、デバッグが妨げられるとして、アクション作成者によるステートへのアクセスを推奨しません。一方、
  • Mark Erikson は、意図された目的を引用して、サンク アクション作成者内での getState の使用を推奨しています。 .

結論

最終的に、State in Action Creator にアクセスするかどうかの決定は、アプリケーションの特定のニーズによって異なります。最小限のアクション ペイロードが必要な場合は、getState を回避することをお勧めします。ただし、ユースケースが正当である場合は、サンク内で状態にアクセスすると、より柔軟でサーバー側の互換性が得られます。

以上がAction Creators 内で Redux 状態にアクセスすることが正当化されるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。