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 貢献者によって異なります:
結論
最終的に、State in Action Creator にアクセスするかどうかの決定は、アプリケーションの特定のニーズによって異なります。最小限のアクション ペイロードが必要な場合は、getState を回避することをお勧めします。ただし、ユースケースが正当である場合は、サンク内で状態にアクセスすると、より柔軟でサーバー側の互換性が得られます。
以上がAction Creators 内で Redux 状態にアクセスすることが正当化されるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。