redux-reducerで現在の場所の現在のパスとクエリを取得するにはどうすればよいでしょうか。私は、mapStateToPropsでコンポーネント内で簡単にパス名を取得することができますが、私は減速機の現在のパスにアクセスしたいです。私はredux-router 1.0.0-beta7、react-router 1.0.3を使用しています。レデューサー(redux-router)の現在位置にアクセスするには?
6
A
答えて
12
.way - ミドルウェアを書き、すべてのアクションとパス名を渡す - redux-thunkとgetStateを()を介して特定の作用と
const someAction = data =>(dispatch,getState)=>{
dispatch({
type:'SOME_ACTION',
pathname:getState().router.pathname
})
}
.wayをパス名を渡します
///write middleware
export const attachPathNameToAction = store => next => action=>{
action.pathname = store.getState().router.pathname //<-----passing pathname
next(action)
};
///then in reducer you allways can get pathname
case 'SOME_ACTION':
let pathname = action.pathname \\ <-------------
return {...state, action.data}
.way - コンポーネントのthis.props.location.pathname
//in component
let {pathname}= this.props.location;
this.props.someAction(data, pathname);
//workflow: component -> action -> reducer
+2
ミドルウェアのソリューションは素晴らしいです!ありがとうございました。 なぜ彼らはそれのためのプラグインを持っていないのですか? – Tomer
+0
'... .router.pathname'ではなく' ... .router.location.pathname'であることに注意してください。 –
関連する問題
- 1. 現在の位置にリロードするページ
- 2. MKMapView:現在のズームレベルを現在の位置に従います
- 3. シミュレータの現在の位置
- 4. 現在のタッチ位置
- 5. AChartEngine現在の位置
- 6. 現在のキャレット位置にあるTINY MCEにプレースホルダを配置
- 7. @とtextarea現在位置の間に出現する
- 8. iOSのtableViewCellの現在の位置を表示するには
- 9. 現在位置マーカー(青丸)
- 10. osmdroidに現在の位置ポインタを表示する方法は?
- 11. Androidは現在の位置を取得
- 12. Canvasで現在の翻訳位置を見つけるには?
- 13. mediaplayer現在の位置は常にゼロです
- 14. 現在の位置のピンを地図上に表示する
- 15. 現在の位置にdivのIDを取得する
- 16. 私の現在の位置をGoogleマップに返信する
- 17. キャッシュの代わりに現在の位置を取得する
- 18. 現在の位置にGoogleマップを設定する
- 19. 現在の変換位置に方向を適用する
- 20. アンドロイドの現在の位置を取得
- 21. リストのSOLR現在の位置
- 22. Android Googleマップの現在の位置
- 23. Titan VideoPlayerの現在の位置
- 24. 現在のマウスの位置を取得
- 25. マーカーの現在の位置android Googleマップ?
- 26. Geofence.GEOFENCE_TRANSITION_EXITの現在の位置を取得
- 27. マップキット内の現在の位置
- 28. cakephp 2.6モデルレイヤの現在の位置
- 29. バニラjsの現在の位置
- 30. ユーザーの現在の国 - ユーザーの現在の位置に基づいて
からのパスのパス名は、多分あなたは、アクションのクリエイターによる減速へのパス名を渡すことができますか? –
現在のパスの「真実の源」をなぜ複製しますか?現在のパスにアクセスする必要がある場合は、 'router 'が自動的に渡されるので' props'から取得してください。ルータは経路の場所の真実の源であり、これをreduxで複製する必要はありません。著者Reduxから聞く必要がある場合は、これを見てください:https://egghead.io/lessons/javascript-redux-filtering-redux-state-with-react-router-params – lux
これはどのように[redux-router] (https://github.com/acdlite/redux-router#differences-with-react-router-redux) –