如果我在电影页面上
/movie/some-movie
然后转到
链接/movie/another-movie
组件不呈现
react-route v4
路由器
<Route exact path="/movie/:urlRusLat" component={Movie} />
链路
<Link to={'/' + item.media_type + '/' + urlRusLat(item.title || item.name) + '-' + item.id} className="result-element" key={index}>
我尝试使用 componentWillReceiveProps 并发送请求,但我收到道具新位置,就像在nextProps中一样。
componentWillReceiveProps(nextProps) {
console.log(this.props)
if (this.props.location.pathname !== nextProps.location.pathname) {
this.sendRequest();
}
}
componentDidMount() {
this.sendRequest();
}
componentWillUnmount() {
this.props.clearMovieData();
}
sendRequest = () => {
let movieId = this.props.location.pathname.split('-');
this.props.loadMovieData(movieId[1]);
}
&#13;
如果路径更改或再次渲染组件,如何发送请求?
答案 0 :(得分:5)
您可以使用componentDidUpdate()来调用sendRequest()函数。现在你获得了更新的道具。但是在发出sendRequest()调用之前,请确保添加了对oldProps.location!= props.location的检查。