反应路由器4不更新视图上的链接,但不会对刷新反应路由器4不更新视图上的链接,但不会对刷新(React

2019-05-11 21:15发布

我用下面这个简单的导航代码

<Router>
  <Switch>
    <Route exact path='/dashboard' component={Dashboard} />
    <Route path='/dashboard/accounts' component={AccountPage} />
  </Switch>
</Router>

<NavLink exact to={'/dashboard'}
         disabled={this.props.item.disabled}
         activeClassName='active'>

<NavLink exact to={'/dashboard/accounts'}
         disabled={this.props.item.disabled}
         activeClassName='active'>

该URL的变化,但认为不会。 当我刷新页面或手动转到该URL但它确实改变。

Answer 1:

您也可以使用:

import { withRouter } from 'react-router-dom';

然后在你的出口默认情况下,你这样做:

export default withRouter(connect(mapStateToProps, {})(Layout));

因为当你有一个出口连接,你需要告诉该组件将要使用的路由器。



Answer 2:

这是因为react-redux connect方法实现shouldComponentUpdate ,这将导致部分渲染时的道具并没有改变。 这就是现在的反应,路由器4冲突。

为了避免它,你可以通过{pure: false}connect中所描述的反应,终极版故障诊断部分 。

另一种方法是使用withRouter HOC或通过location丙像在DOCS描述 。



Answer 3:

我有我的Navlinks在一个无状态的组分(或哑成分)和容器来控制我的导航栏的崩溃状态。

从切换导航栏容器后PureComponentComponent它解决了这个问题对我来说。



Answer 4:

我也遇到了这个问题。 我通过添加属性关键部件开关与价值解决它是一个位置路径和位置搜索。



文章来源: React router 4 does not update view on link, but does on refresh