点击链接后

时间:2018-11-23 10:03:21

标签: reactjs react-router

我正在使用React的Link属性转到相同的URL,但是使用了不同的参数。但是我的api没有再次调用,因为我将api调用部分放在 componentDidMount()中。在单击url时,我的url参数更改了。下面是代码。

componentDidMount(){ 
   let profile_id = window.localStorage.getItem('profile_id');
   if(profile_id && profile_id!==''){
     this.props.fetchSingleProfile(profile_id)          
   }
}

第一次,api调用和数据成功呈现。以下是我使用链接的方式。

<Link to={this.userId}>Next</Link>

现在单击链接,我成功路由到了给定URL,但是正如我提到的“ 组件在成功路由时再次呈现,但是api不再调用”。反应中有任何事情,已经知道了,我的网址已更改,现在再次调用api。

注意:我可以使用任何生命周期方法,例如:componentWillReceiveProps,但是我不想再次调用api。

1 个答案:

答案 0 :(得分:0)

  

但是当我将api调用部分放在componentDidMount()中时,我的api没有再次调用。

您具有相同的路线,因此呈现相同的<Route>。所有嵌套的组件均保持不变,因此无需重新安装即可更新它们。

您几乎没有办法处理该问题:

  1. 不仅在componentDidMount上而且还在componentDidUpdate上提取数据
  2. 使用keyremount component

it is not actually its responsibility起,仅凭react-router的{​​{1}}不能完成