问题:从后端拉取到数据放到sourceList数组中,每个item都是对象,在获取对象的value属性值时一直报错显示value为undefined
原因:defaultValue只会读取一次数据,页面刚进来的时候在componentDidMount中调用接口传来的数据,但是render会在componentDidMount之前调用,在页面刚进来的时候第一次render的时候数据还没有拿到,此时sourceList为undefined,所以defaultValue首次读取到的sourceList为空并不会报错只会没有任何显示(取null数据类型存在),但对为空值的sourceList取它的属性值value对应数据时,就会报错并显示为undefined(取null值的value必然是会报错的,数据类型不存在)
解决方法:判定如果当前sourceList[0]不存在的话,就直接return出去不渲染组件,等到有值了,defaultValue第一次读取的数据值是存在的,就可以正确显示出来
let {sourceList}=this.props.SourceReducer
if(!sourceList[0]){
return(<div></div>)
}
return(
<Select defaultValue={sourceList[0].value} style={