【问题标题】:Link to not rendering the component again链接到不再渲染组件
【发布时间】:2018-11-23 07:54:41
【问题描述】:

我正在使用 React Link to="" 属性。我有一个如下所示的网址。

http://localhost:3000/work/109

点击链接后,会成功跳转到下面的url,但不会再次重新渲染组件。

http://localhost:3000/work/107

下面是我的文件,我正在使用 react-router

import React from 'react';
import { Route, Redirect } from 'react-router-dom';

export const RouteWithSubRoutes = route => (
 <React.Fragment>
   <Route exact path="/" render={()=>(<Redirect to="/home" />)}/>
   <Route exact path={route.path} render={props => (
   <route.component {...props} routes={route.routes} onOpenNav={route.onOpenNav}/>
 )} />
 </React.Fragment>
);

是否还有其他我没有使用的 React 属性。

注意:我将访问相同的 url,但 id 不同。

【问题讨论】:

  • 请参阅创建minimal reproducible example。我们需要查看代码,以便为您提供帮助。
  • 我认为您没有使用路由器,即使更改了路径参数,它也会呈现相同的东西
  • 我正在使用 react-router
  • 请给出一个工作示例。问题太模糊了
  • 我用我正在使用 react-router 的文件编辑了代码。

标签: reactjs react-router


【解决方案1】:

你应该在你的Route 组件路径中使用'react-router'params。 同样,单击Link 组件后,新参数也会发送到您的组件。

您可以检查this.props.match.params 以确保它得到更新。

那么既然您希望组件重新渲染,您应该使用getDerivedStateFromProps 来获取新值并将其设置为您的状态。

【讨论】:

  • 它们是所提供链接的示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多