数据驱动组件为空或默认状态(数据无误)

因为组件初始化时,传递组件的参数为默认数据或空,导致组件将自身数据或状态更新为相应的参数状态。等参数更新完成之后,组件的初始化已经结束,无法再更新自身数据和状态。

解决方法

  1. 只让组件初始化一次。参数存在时,才调用组件
data&&<Component data={data}>
  1. 组件内部监听传参更新。
// 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/
作者
fullsize
发布于
2022年3月4日
许可协议