How would i get the current path and query of the current location with redux-router in reducer. I am able to get the pathname easily inside the component with mapStateToProps, but i want to access the current path in reducer. I am using redux-router 1.0.0-beta7, react-router 1.0.3.
How would i get the current path and query of the current location with redux-router in reducer. I am able to get the pathname easily inside the component with mapStateToProps, but i want to access the current path in reducer. I am using redux-router 1.0.0-beta7, react-router 1.0.3.
Share Improve this question asked Jun 28, 2016 at 18:52 VikramadityaVikramaditya 5,5747 gold badges36 silver badges46 bronze badges 3 |1 Answer
Reset to default 201.way - pass pathname with particular action through redux-thunk and getState()
const someAction = data =>(dispatch,getState)=>{
dispatch({
type:'SOME_ACTION',
pathname:getState().router.pathname
})
}
2.way - write middleware and pass pathname with every action
///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}
3.way - pass pathname from component's this.props.location.pathname
//in component
let {pathname}= this.props.location;
this.props.someAction(data, pathname);
//workflow: component -> action -> reducer
props
sincerouter
is automatically passed. Router is the source of truth for route location, no need to duplicate this in redux. If you need to hear it from the author Redux, watch this: egghead.io/lessons/… – lux Commented Jun 28, 2016 at 19:39