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

38次阅读

共计 425 个字符,预计需要花费 2 分钟才能阅读完成。

当数据需要异步加载时 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} />
)

)

}

正文完
 0