Redux表单 - 当URL从同一组件更改时如何重新呈现?

时间:2017-12-18 23:12:16

标签: reactjs redux redux-form

我正在尝试在网址更改时重新呈现ReduxForm集成组件,但组件保持不变。

我试过了

componentWillReceiveProps(nextProps){
 if (this.props.history.location.pathname 
  !== nextProps.history.location.pathname){
  console.log('here, new route but same component!');
}

以及componentDidUpdate的内容相同,但nextPropsthis.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()

1 个答案:

答案 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!');
}