React使用componentWillReceiveProps重新呈现组件

时间:2017-02-15 00:35:57

标签: reactjs redux

this.props.user的值发生变化时,我无法弄清楚如何使我的componentsnet重新渲染。最初,this.props.user的值为null,但它会在之后几秒变为实际值。下面我展示了儿童组件。父组件将商店状态映射到它的props,我将它传递给下面的子组件类。

export class UserInfoComponent extends Component {
  constructor(props){
    super(props);
    this.state = {user: this.props.user}
  }

  componentWillReceiveProps(){
    this.setState({user: this.props.user})
  }

  render() {
    if(this.state.user)
    return (
      <h1>{this.state.user.firstName}</h1>
    );

    return (
      <h1>loading</h1>
    )
  }
}

1 个答案:

答案 0 :(得分:31)

==收到componentWillReceiveProps作为参数。使用您目前拥有的代码,您只需将用户设置回其当前状态即可。您需要使用提供的nextProps参数。

nextProps