我正在尝试在网址更改时重新呈现ReduxForm集成组件,但组件保持不变。
我试过了
componentWillReceiveProps(nextProps){
if (this.props.history.location.pathname
!== nextProps.history.location.pathname){
console.log('here, new route but same component!');
}
以及componentDidUpdate
的内容相同,但nextProps
和this.props
相同!
componentDidUpdate(prevProps) {
console.log(this.props.location)
console.log(prevProps.location);
// These two are the same!
}
另外,我无法访问nextProps.params
- ReduxForm或connect
正在更改组件的this
对象,让我完全不知道如何在URL中注册已经改变了。
我不想使用window.location.reload()
答案 0 :(得分:0)
尝试将原始this.props.history.location.pathname存储到状态中的变量以“缓存”它。我认为当时正在调用componentWillRecieveProps
this.props与nextProps相同
//像这样......
componentDidMount(){
this.setState({cachedURL: this.props.history.location.pathname})
}
componentWillRecieveProps(nextProps){
if (this.state.cachedURL
!== nextProps.history.location.pathname){
console.log('here, new route but same component!');
}