在React Native组件中,与本组件显示有关的变量放在状态机,父组件传递下来的属性放在属性变量中,一些与组件逻辑控制相关但与组件显示无关的变量(申请的资源,订阅的事件)放在成员变量中,另外还有无处不在的局部变量和偶尔用一下的静态变量。
一、状态机
1、定义
在构造函数中可以不用提前定义状态机
constructor(props) {
super(props)
this.state = {
stateA:'aaa',
stateB:'bbb',
}
}
2、更新
React Native 框架使用 setState 函数来合并状态机变量。
setState 函数的原型是:setState(oldState, callback)
(1)setState 函数会将传入函数的返回值与当前状态机做一个合并操作:
- 名称相同的变量就用新值覆盖老的。
- 有新增加的变量则直接增加。
- 原来就有的状态机变量,但本次没有赋新值则保证不变。
(2)当我们调用 this.setState 函数要求重新渲染 UI 界面时,React Natvie 并不是立刻就开始重新渲染。而是会先想一想如何才能高效地重新渲染界面,然后尽快去渲染。
(3)setState 函数第二个参数(callback