Javascript 将状态作为道具传递给子对象会导致null

Javascript 将状态作为道具传递给子对象会导致null,javascript,reactjs,Javascript,Reactjs,我有一个父组件,我在其中进行API调用,并为一个对象设置状态。然后我把这个状态作为道具传递给孩子。这是我的家长代码 class Header extends React.Component { constructor(props) { super(props); this.state = { user: null}; }//end of constructor componentWillMount() { getUserData(url).then((

我有一个父组件,我在其中进行API调用,并为一个对象设置状态。然后我把这个状态作为道具传递给孩子。这是我的家长代码

class Header extends React.Component {

  constructor(props) {
    super(props);
    this.state = { user: null};

  }//end of constructor

  componentWillMount() {

    getUserData(url).then((result) =>{
      this.setState({user : result});
      console.log(this.state.user);


    });
  }
  render() {
    return (
      <div className="header">
        <Masthead user= {this.state.user} />

      </div>
    );
  }
}
export default Header;
类头扩展React.Component{
建造师(道具){
超级(道具);
this.state={user:null};
}//构造函数结束
组件willmount(){
getUserData(url)。然后((结果)=>{
this.setState({user:result});
console.log(this.state.user);
});
}
render(){
返回(
);
}
}
导出默认标题;
这是孩子,

class Masthead extends React.Component {

  constructor(props){
    super(props);
  }

  componentDidMount(){
    console.log(this.props.user);
  }
  render() {
    return (     
        <div className="col-md-8">
         ......
        </div>     
    );
  }
}
Masthead.propTypes ={
  user: React.PropTypes.object
};
export default Masthead;
类报头扩展React.Component{
建造师(道具){
超级(道具);
}
componentDidMount(){
console.log(this.props.user);
}
render(){
报税表(
......
);
}
}
桅顶支撑杆={
用户:React.PropTypes.object
};
导出默认报头;
当我将用户对象登录到子对象中时,我得到该用户对象的
null
。我做错了什么?

来自文档:

componentWillMount()
在装入之前立即调用。它在
render()
之前调用,因此在此方法中设置状态不会触发重新渲染

换句话说,即使父状态在
组件willmount()
中发生更改,也不会影响子组件。尝试在文档中的
componentDidMount()

中调用API:

componentWillMount()
在装入之前立即调用。它在
render()
之前调用,因此在此方法中设置状态不会触发重新渲染


换句话说,即使父状态在
组件willmount()
中发生更改,也不会影响子组件。尝试在
componentDidMount()

中进行API调用在将子项装入DOM时,父项尚未使用更新的值设置状态变量,即构造函数中的状态变量仍然为null


将API调用放入
componentDidMount()
将在父级装入后运行,然后当调用返回并且您
setState
时,您的子级将使用新的道具重新渲染。

在将子级装入DOM时,父级未使用更新的值设置状态变量,也就是说,构造函数中的值仍然为空

将API调用放入
componentDidMount()
将在父级装入后运行,然后当调用返回并且您
setState
时,您的子级将使用新的道具重新渲染