2017-06-13 84 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)

如果你想在終極版做到這一點,那麼你可以用陣營 - 路由器 - 終極版

嘗試
相關問題