//父组件
class Parent extends React.Component{
...
this.state = {
fetchData: {}
};
componentDidMount(){
ajax(){
...
success:{
this.setState({
fetchData:ajaxData
});
}
}
}
render(){
return (
<Son data={this.state.fetchData}></Son>
);
}
}
//子组件
function Son({ data }){
return (
<div>{data.array[0].name}</div> //问题就出在这里,因为刚渲染的时候data的默认值是空{},肯定会报错找不到array[0]这些值
);
}
子组件属性的数据结构是个复杂的数据结构,除非我在设置data
的defaultProp
时把里面要用到数据结构都列出来,但是好麻烦,有没有更简单的办法解决这个问题呢?我想了下,我就是想在父组件ajax请求成功后,再把请求后的数据传给子组件属性中,但是怎么实现呢?
另外我还尝试过不用无状态组件,然后用各种生命周期,都失败了
请求数据回来之后再加载子组件呢?