在this.state 定义的变量如果改变会重新render 如果不想让他render 只是改变值怎么写 需要写在组件外面么
6 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
慕森王
TA贡献1777条经验 获得超3个赞
守候你守候我
TA贡献1802条经验 获得超10个赞
state改变是会触发re-render的,你这样的需求变量最好别存state。shouldComponentUpdate()
可以在state
改变不去render
慕勒3428872
TA贡献1848条经验 获得超6个赞
这个只能在周期里面去限制了,state 执行this.setState 就会执行render方法,如果不想话,可以考虑上述说的在周期里面判断不需要render的条件,shouldComponentUpdate 必须有返回值,不然也会报错,return true 执行render false不执行render。如果觉得麻烦的话可以考虑react 16版本发的命名组件的新的方法,
class Box extends React.PureComponent 他能做一些简单的浅比较。
30秒到达战场
TA贡献1828条经验 获得超6个赞
一般来说不用 this.state 直接挂着 this 上就行。但有时候必须挂一些跟渲染无关的数据在 state 上,比如用到 getDerivedStateFromProps ,这时可以小 hack 在 state 上开辟一个 mutableArea 对象专门用来挂变量。直接修改这个对象的属性不改变它本身,所以不会影响渲染。比实现 shouldComponentUpdate 方便些。
添加回答
举报
0/150
提交
取消