,那么此时就需要使用state
一旦组件的状态(数据)发生更改,组件就会自动的调用render函数重新渲染UI,更改这个state状态是通过this.setState方法来触发实现的
下面我们从一个简单的点击按钮...,页面不会有任何反应,打开控制台,会有一个警告提示 不要直接的更改state的值,当你在点击减号时,你会发现计数发生阶跃性变化,比如初始计数值是0的情况下,在你连续点击加按钮三次时,计数值没有发生任何变化...(直接更改state的值会出bug)
直接修改this.state的值,虽然改变了组件的内部状态,但是并没有驱动组件进行重新渲染,既然组件没有重新渲染,页面上的UI这个this.state当然不会有任何变化...,它并不会重新渲染组件,如下所示
// 错误的写法 this.state.xxx = "新的值"
this.state.count = this.state.count+1;
应该使用setState(...状态(state)应该是会随着时间产生变化的数据,当更改这个状态(state),需要更新组件的UI,就可以将它定义成state,更多是在实现页面的交互时使用的
另一种程度上讲,在写静态,没有任何交互页面时