当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>
)
}
}
答案 0 :(得分:31)
==
收到componentWillReceiveProps
作为参数。使用您目前拥有的代码,您只需将用户设置回其当前状态即可。您需要使用提供的nextProps
参数。
nextProps