首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问reducer (redux-router)中的当前位置?

如何访问reducer (redux-router)中的当前位置?
EN

Stack Overflow用户
提问于 2016-06-29 02:52:42
回答 1查看 10.4K关注 0票数 10

如何在reducer中使用redux-router获取当前路径和当前位置的查询。我可以使用mapStateToProps很容易地在组件中获取路径名,但我想访问reducer中的当前路径。我使用redux-router 1.0.0-beta7,react-router 1.0.3。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-29 03:26:32

1.way -通过和getState()传递带有特定操作路径名

代码语言:javascript
复制
const someAction = data =>(dispatch,getState)=>{
   dispatch({
      type:'SOME_ACTION',
      pathname:getState().router.pathname
   })
}

2.way -编写中间件,并为每个操作传递路径名

代码语言:javascript
复制
///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 -从组件的this.props.location.pathname传递路径名

代码语言:javascript
复制
//in component 
let {pathname}= this.props.location;
this.props.someAction(data, pathname);

//workflow:  component -> action -> reducer
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38084121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档