先上代码:
父组件:
import React,{Component} from 'react'
export default class Father extends Component {
constructor(props){
super(props)
this.state={
role: {}
}
}
componentDidMount() {
fetch("xxxx").then(res=>{
this.setState({
role:res.data.role //获取数据
})
})
}
render(){
return(
<div>
<Child role={this.state.role} /> //将数据传给子组件
</div>
)
}
}
上面是父组件的代码,子组件要通过this.props.role.info.roleName
来获取roleName
显示在页面上。
问题来了:
组件第一次render
的时候,数据还没有请求过来,此时子组件获取的其实是默认的空对象{}
,里面不存在info
,更别说roleName
了,这时就会导致浏览器报错。
这种情况应该如何处理?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…