Reactjs 如何在路由器4的组件之外导航?

Reactjs 如何在路由器4的组件之外导航?,reactjs,react-router,Reactjs,React Router,在React Router(v3)中,我可以接受服务器响应,并使用browserHistory.push转到相应的响应页面。然而,这在v4中是不可用的,我不确定在React Router v4中处理这一问题的合适方法是什么 在下面的示例中,当服务器返回成功时,用户被带到购物车页面 //actions/index.js export function addProduct(props) { return dispatch => axios.post(`${ROOT_URL}/ca

在React Router(v3)中,我可以接受服务器响应,并使用browserHistory.push转到相应的响应页面。然而,这在v4中是不可用的,我不确定在React Router v4中处理这一问题的合适方法是什么

在下面的示例中,当服务器返回成功时,用户被带到购物车页面

//actions/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中的函数重定向到页面


我可以从组件中找到很多关于导航的参考。在我的例子中,我需要从一个函数中导航

如果你想让程序路由器到某个地方,使用历史是最好的解决方案,这里的问题是如何在组件中获取历史对象:

  • 路由:使用路由渲染组件
  • 带路由器:包裹组件:

    类yourcomponent扩展组件{}

    withRouter()(您的组件)

如果要在Redux中执行此操作,则可以尝试使用React Router Redux