链接到不再渲染组件

时间:2018-11-23 07:54:41

标签: reactjs react-router

我正在使用React 链接到=“” 属性。我有一个如下所示的网址。

  

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的其他任何属性吗?

注意:我要使用相同的网址,但是具有差异ID。

1 个答案:

答案 0 :(得分:0)

您应在Route组件路径中使用“反应路由器” params。 同样,通过点击Link组件,新的参数会发送到您的组件。

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

然后,由于要重新渲染组件,应使用getDerivedStateFromProps获取新值并将其设置为您的状态。