2017-08-02 69 views
0

我不得不挖掘很多才能找到這個問題。React Router Redux,Switch不考慮locationBeforeTransitions

使用

「歷史」: 「^ 4.6.3」,
「反應」: 「^ 15.6.1」,
「反應-DOM」: 「^ 15.6.1」 ,
「react-redux」:「^ 5.0.5」,
「react-router-dom」:「^ 4.1.2」,
「react-router-redux」:「^ 4.0.8」,

And

<Switch> 
    <Route exact path="/" component={MyComponent1} /> 
    <Route path="/route2" component={MyComponent2} /> 
</Switch> 

事實

開關器件一無所知 「locationBeforeTransitions」。我想這個對象是通過react-router-redux注入的。

爲了解決這個問題,我必須通過locationBeforeTransitions通過mapStateToProps,並...

<Switch location={this.props.location} /> 

所以我的開關組件知道什麼是當前的位置。

兩個問題
1.爲什麼我不得不這樣做是考慮到反應路由器,終極版應該處理呢?
2.有沒有辦法做到這一點?

感謝

回答

1

反應路由器,終極版僅與反應路由器版本2.x和3.x兼容,您使用的陣營路由器V4

這是一個新的版本,他們已經改變了它很多

在v4中,沒有集中路由配置。無論您需要根據路線呈現內容,您只需渲染一個組件。
源:https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/migrating.md

我建議你堅持使用v4和剛剛重新學習它。

+0

謝謝你,你回答我的第一個問題。我需要一個代碼示例來解決第二個問題。 –

相關問題