我正在使用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。
答案 0 :(得分:0)
但是当我将api调用部分放在componentDidMount()中时,我的api没有再次调用。
您具有相同的路线,因此呈现相同的<Route>
。所有嵌套的组件均保持不变,因此无需重新安装即可更新它们。
您几乎没有办法处理该问题:
componentDidMount
上而且还在componentDidUpdate
上提取数据key
至remount component 自it is not actually its responsibility起,仅凭react-router
的{{1}}不能完成