数据驱动组件为空或默认状态(数据无误)
因为组件初始化时,传递组件的参数为默认数据或空,导致组件将自身数据或状态更新为相应的参数状态。等参数更新完成之后,组件的初始化已经结束,无法再更新自身数据和状态。
解决方法
- 只让组件初始化一次。参数存在时,才调用组件
data&&<Component data={data}>- 组件内部监听传参更新。
// hook
useEffect(()=>{
if(props.data!==data){
setState({
data:props.data
})
}
},[props])
// class
componentDidUpdate(prevProps, PrevState) {
if (prevProps.selectIndex !== this.props.selectIndex && this.props.selectIndex) {
this.setState({
selectIndex: this.props.selectIndex
})
}
}
数据驱动组件为空或默认状态(数据无误)
https://blog.fullsize.cn/2022/03/04/notion/shu-ju-qu-dong-zu-jian-wei-kong-huo-mo-ren-zhuang-tai-shu-ju-wu-wu/