2017-06-13 59 views
0

在React Router(v3)中,我可以接受服务器响应并使用browserHistory.push转到相应的响应页面。然而,这在v4中是不可用的,我不确定在React-Router V4中处理这个问题的适当方式是什么。如何导航到ReactRouter 4中的组件之外?

在下面的例子中,当服务器端返回成功,用户被引导到购物车页面

//动作/ index.js

export function addProduct(props) { 
    return dispatch => 
    axios.post(`${ROOT_URL}/cart`, props, config) 
     .then(response => { 
     dispatch({ type: types.AUTH_USER }); 
     localStorage.setItem('token', response.data.token); 
     browserHistory.push('/cart'); // no longer in React Router V4 
     }); 
} 

我如何可以从该网页的重定向React Router v4的功能?

我可以从我需要从一个功能导航

回答

-2

阵营路由器4具有声明的方式这在我的情况下,组件找到导航大量引用,而是OM命令式地调用一个函数来做渲染重定向一个<Redirect/>组件,see docs here

所以在负责组件渲染方法,你可能要有条件地呈现<Redirect to='/cart'/>取决于如果你想程序路由器某处一些道具由行动

-2

更改,使用历史是最好的解决方案,他们的问题在这里是如何获得在组件历史对象:

  • 路线:渲染组件与路线
  • WithRouter:包组件:

    您的组件扩展组件{}

    withRouter()(yourcomponent)

如果你想在终极版做到这一点,那么你可以用阵营 - 路由器 - 终极版

尝试
相关问题