ReactNative

React Native 之生命週期及props,state

2017-10-09  本文已影响0人  IPFK

Props 属性 相当于OC中的ReadOnly ,只读属性!!
state 状态 每个组件有一个系统的setState方法,用来改变状态,而且会刷新界面!调用Render()函数!!

export default class Test extends Component {
    state={    //狀態機
        title:'默認值',
        person:'ABC'
    }

    static defaultProps={
        age:18
    }

    //相當於OC中的ViewWillAppear
    componentWillMount(){
        //AlertIOS.alert('WillMount來了')
    }

    //
    render() {
        return (
            <View ref="topView" style={styles.container}>
                <Text>{this.state.person}</Text>
                <Text>{this.props.age}</Text>
                <Button title="我就是個Button"
                        color="red"
                        onPress={()=>this.click('點擊')}
                />
            </View>
        );
    }
    click(event){
        //改變狀態機後才會進componentDidUpdate()方法
        this.setState({
            title:event
        });

        //可以通過對DOM設置**ref屬性**來拿到View
        console.log(this.refs.topView)
    }
    //在Render之後 -- 今後用來發送網絡請求(第一次加載的數據)
    componentDidMount(){
        // AlertIOS.alert('DidMount')
    }

    //這個方法!!刷新UI之後調用!!!第一次加載不會進來!!狀態機改變後會進來!!!
    componentDidUpdate(){
        AlertIOS.alert('DidUpdate');
    }

}

//下面這個函數是個閉包,調用方法為onPress={btnClick}
const btnClick = ()=>{
    AlertIOS.alert('我來了!!')
}

const styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
        backgroundColor: '#F5FCFF',
    }
});
上一篇下一篇

猜你喜欢

热点阅读