问题
当页面加载后,还没有获取后台数据之前,而子组件中的数据又是从后台获取。遇到了这种情况
一旦子组件中使用了类似于props.xxx的形式获取数据,就会报错
之前不是很理解这种情况,导致不知道该如何使用props
自己的理解
首先页面没加载时,浏览器肯定是没有办法向后台发送请求来获取数据的。
那么,在页面第一次加载时,如果有获取数据的代码执行,这个时候,还没有从后台拿数据,那么props肯定是空的。这个是后使用props.xxx肯定会报错。
所以就不能让子组件的代码中,出现页面第一次加载时,就是用porps的情况
然后,当从后台获取到数据时,再使用props中的数据。
代码中该怎么做
render(){
//先定义一个要交给return使用的变量,根据a的值的不同给一个默认值
let a = ""/0/{};
if(props.xxx){
//判断为真就是props拿到数据了
a = props.xxx
}
return(
<div>{a}
</div>
)
}
后记
这是我目前能想到的一个解决办法,暂时还没有更深入的了解react,不知道大牛是怎么做的。后边如果有更优秀的做法,会把文章链接放到这里。
网友评论