react 异步加载数据时的渲染问题

当数据需要异步加载时render获取不到数据可能会报一些错误,此时需要在render函数中加一个判断
componentWillMount (){
axios.get(“http://127.0.0.1:8088/user/userlist”).then(res =>{
this.setState({
dataSource:res.data.data,
haveData:true
})

})
}
render() {
/* 注意下面这个三目运算符,执行到render时,state对象的haveData为false,
所以此时页面展示 loading,当异步获取数据成功时,
haveData值为true,此时又一次执行render,
此时将需要的数据传给视图,正确展示到页面 */
return (
!this.state.haveData?”loading”:(
<Table columns={columns} dataSource={this.state.dataSource} />
)

)

}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理