我编写了一个简单的应用程序,其中远程资源在组件的componentDidMount
函数内被提取。
我正在使用React Router,当路由完全更改时,先前的组件已卸载,然后安装新的组件。
问题是当用户停留在同一路线上时,但只更改了一些参数。在这种情况下,组件仅更新。这是默认行为。
但有时很难处理以前只需要componentDidMount
的所有子组件中的更新...
当用户停留在同一条路线但有些参数正在改变时,有没有办法强制重新安装组件?
感谢。
答案 0 :(得分:1)
执行以下操作
路线应该是这样的。<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>)
}
}