我不得不挖掘很多才能找到这个问题。
是:
"历史":" ^ 4.6.3",
"反应":" ^ 15.6.1",
" react-dom":" ^ 15.6.1",
" react-redux":" ^ 5.0.5",
" react-router-dom":" ^ 4.1.2",
" react-router-redux":" ^ 4.0.8",
和:
<Switch>
<Route exact path="/" component={MyComponent1} />
<Route path="/route2" component={MyComponent2} />
</Switch>
事实:
Switch组件对&#34; locationBeforeTransitions&#34;一无所知。我想这个对象是react-router-redux注入的。
要解决这个问题,我必须通过mapStateToProps传递 locationBeforeTransitions ,并且......
<Switch location={this.props.location} />
所以我的开关组件知道当前位置是什么。
两个问题:
1.为什么我必须这样做考虑到react-router-redux应该处理这个?
2.有没有办法做到这一点?
由于
答案 0 :(得分:1)
react-router-redux仅与react-router版本2.x和3.x兼容,并且您使用的是React Router v4
这是一个新版本,他们已经改变了很多
在v4中,没有集中路由配置。您需要根据路线渲染内容的任何地方,您只需渲染一个组件 src:https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/migrating.md
我建议你坚持使用v4并重新学习它。