我们使用两种数据来控制一个组件:Props+State。props在父组件中指定,一旦指定,在该组件的生命周期中不再改变。而对于需要改变的数据,我们通过state进行修改
constructor(构造器):初始化组件state值,返回值会赋给this.state属性。--- EC6写法
定时器
setTimeout (fn, 1000) 表示延迟1000毫秒后执行 fn 方法
setInterval (fn,1000) 表示每隔1000毫秒执行 fn 方法。
requestAnimationFrame(fn) 在每帧刷新之后执行一次
setTimeout(fn, 0) 尽可能快的执行
import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';
class Blink extends Component {
constructor(props) {
super(props);
this.state = { showText: true };
// 每1000毫秒对showText状态做一次取反操作
setInterval(() => {
this.setState({ showText: !this.state.showText });
}, 1000);
}
render() {
// 根据当前showText的值决定是否显示text内容
let display = this.state.showText ? this.props.text : ' ';
return (
<Text>{display}</Text>
);
}
}
class BlinkApp extends Component {
render() {
return (
<View>
<Blink text='I love to blink' />
<Blink text='Yes blinking is so great' />
<Blink text='Why did they ever take this out of HTML' />
<Blink text='Look at me look at me look at me' />
</View>
);
}
}
AppRegistry.registerComponent('BlinkApp', () => BlinkApp);