问题描述:当在浏览器中刷新页面时,如下示例代码:classTestextendsComponent{constructor(props){super(props)this.state={}}componentWillMount(){//获取所有活动数据...code}render(){const{Test}=this.props;console.log(Test)return(这是一段测试代码)}会发现在浏览器后台打印出多次Test,其中前几次多为空对象,那么应该如何避免这种情况呢?
2 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
shouldComponentUpdate是可以控制是否渲染更新的classTestextendsComponent{constructor(props){super(props)this.state={}}componentWillMount(){//获取所有活动数据...code}shouldComponentUpdate(nextProps){if(isEqual(nextProps.Test,this.props.Test){returnfalse}}render(){const{Test}=this.props;console.log(Test)return(这是一段测试代码
)}
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
1、如果代码结构正确,这种多次渲染并不会存在问题(没获取到数据之前为空,得到数据再次渲染,正常现象),当然如果没正确控制好代码渲染,就会带来各种bug2、如果想减少不必要渲染,使用shouldcomponenmtupdate
添加回答
举报
0/150
提交
取消