我写了一个简单的应用程序,其中远程资源是在组件的componentDidMount
函数内获取的。
我正在使用React Router,当路由完全改变时,先前的组件已卸载,然后安装新的组件。
问题是当用户停留在同一路线上时,但只有一些参数被更改。在这种情况下,组件仅更新。这是默认行为。但有时很难处理以前只需要componentDidMount
的所有子组件的更新...
有没有办法在用户停留在同一条路线时强制重新安装组件,但有些参数正在改变?
谢谢。
请执行下列操作
路由器应该是这样的。
<Route path='/movie/:movieId' component={Movie} />
当你去/ movie /:movieID
class Movie extends Component {
loadAllData = (movieID) => {
//if you load data
this.props.getMovieInfo(movieID);
this.props.getMovie_YOUTUBE(movieID);
this.props.getMovie_SIMILAR(movieID);
}
componentDidMount() {
this.loadAllData(this.props.match.params.movieId);
}
componentWillReceiveProps(nextProps){
if(nextProps.match.params.movieId !== this.props.match.params.movieId) {
console.log(nextProps);
this.loadAllData(nextProps.match.params.movieId);
}
}
render(){
return( ... stuff and <Link to={`/movie/${id}`} key={index}>...</Link>)
}
}