bug)]
直接修改this.state的值,虽然改变了组件的内部状态,但是并没有驱动组件进行重新渲染,既然组件没有重新渲染,页面上的UI这个this.state当然不会有任何变化
但是React中的setState...,不仅可以更改props也可以更改state
它接收两种参数形式,一个是对象,另一个是函数
当需要基于当前的state计算出新的值进行处理,给setState函数应该传递一个函数而不是对象,这样可以保证每次调用的状态值都是最新的...setState函数完成之后,避免不必要的重新渲染来提升性能
你可以能会想,React不能对this.state进行立马更新,而不对组件进行重新渲染呢
如果this.state能立即更新改变,就会破坏组件的协调...但是在React中应该遵循一些原则:
让组件尽可能的少状态
如果该组件只是用于UI渲染,数组展示,并无复杂的页面逻辑交互,那么应该让组件的数据定义成props,通过外部组件传入,而并非将数据设置到状态当中去...如果是,那么它就不是state
通过state或者props可以计算出的数据:比如一个数组的长度等,那么它就不是state
它是否随着时间的变化而保持不变?