更新@DominicトビアスにRedux;私の恥ずかしい間違いをスポッティングためcombineReducers
おかげで、@gabdallahを経由して構成さレデューサーを使用したときの状態の他の部分にアクセスします。
正解はもちろんです。
ですので、
action.payload
をチェックしてみてください。
switch文とactionオブジェクトに関する他のコメントは、これまで修正した私の例で作成したエラーを参照しています。
私が次の2つのレデューサーを組み合わせたとします。
import { combineReducers } from 'redux'
import { routerStateReducer } from 'redux-router'
import entries from './entries'
export default combineReducers({
router: routerStateReducer,
entries
})
私は、この場合には、グローバルな状態の別の部分に基づいてエントリの状態を変異したいと思います。たとえば、ページングを実装するためにredux-routerが提供するルータの状態。
どうすればこのようなことができますか?
いくつかのアプローチが考えられます。
- は、ルータの状態をチェックして、順番にエントリの状態を変異ページ、リミット値を持つアクションの作成者を呼び出すためにcomponentWillMountのライフサイクルメソッドを使用し、
Entries
ルートコンポーネントにルータの状態を接続します。これはうまくいくでしょう。私はいくつかの移行ミドルウェアを使用して、そのコンポーネントをマウントする前に静的なfetchData
メソッドを呼び出しているので、データが取得され、その後ページ作成アクション作成者が呼び出されます。望ましい行動ではない。 - 他のルータのアクション(ルータ専用のreduxモジュール)を聞いたり、エントリストアのアクションクリエータを呼び出したりしますが、これはredux-routerやルータへのアクセス方法がわかりませんグローバルストアの一部。
- これはまったく行いません。 static fetchDataメソッドのルータの状態を問い合わせるだけです。
その他の有用な情報です。
問題の実装は、ユニバーサルアプリケーションが重く
- が
- Reduxの3.0.3
- が反応0.14.2を反応させる反応-Reduxのユニバーサル・ホット例
関連DEPSに触発されました - ルータ1.0.0-rc3
- redux-router 1.0.0-beta3
どうすればこのような動作が可能ですか?私はこれについて正しい方法を考えていますか?戻る昔の
アクションを参照してくださいには、型のオブジェクトおよびオプションのペイロードです。 @Dominic Tobiasで述べたように、アクションのtypeプロパティを切り替えて、ペイロードとして経路をレデューサーに送信する必要があります。 –