現在、次のシナリオがあります。深くネストされたサブコンポーネント (表示コンポーネント) はアクション (ルーティング ジャンプなど) をトリガーする必要があり、関連するアクション クリエーターまたはディスパッチャー メソッドをレイヤーごとに渡すことを避けたいと考えています。だから私はこれをやりたいです:
redux ストア インスタンスをグローバル オブジェクト (つまり、global.store = store) として設定すると、store.dispatch() をいつでもどこでも使用できるようになります。
react-redux の mapDispatcherToProps メソッドが使用されなくなったことを意味します。これを行う際に何か問題や落とし穴はありますか?
これは明らかに redux 設計の本来の意図に反しています。どのコンポーネントもグローバル ストアを通じてその状態を変更できます。アクション トリガーをルート コンポーネントに配置することをお勧めします。深いコンポーネントの場合、ルート コンポーネントはイベントを通じて通知され、コンポーネントがアクションをトリガーします。第 2 に、コンポーネントのネスト レベルを設定することは一般的に推奨されません。本当に親子コンポーネントの形式にする必要があるのか、兄弟コンポーネントで部品を置き換えることができるのかを検討できます。
このアプローチは論理的に機能しますが、主な落とし穴はサーバー側のレンダリングにあります。
サーバーサイドレンダリングを行う場合、サーバーにはレンダリング用の独自のストアが必要です