ReactNative学习笔记(四)props&state

2020-02-11  本文已影响0人  维仔_411d

Props 属性

import React, {Component} from 'react';
import {Image} from 'react-native';
export default class Bananas extends Component {
    render(){
        let pic = {
            uri: 'https://upload.wikimedia.org/wikipedia/commons/d/de/Bananavarieties.jpg'
        };
        return (
            <Image source={pic} style={{width:193,height:110}}/>
        );
    }
}
import React, {Component} from 'react';
import {Text, View} from 'react-native';
class Greeting extends Component{
    render(){
        return (
            <View style={{alignItems:'center', marginTop:50}}>
                <Text>Hello {this.props.name}</Text>
            </View>
        )
    }
}
export default class Bananas extends Component {
    render(){
        return (
            <View>
                <Greeting name='Rexxar'/>
                <Greeting name='Jaina'/>
                <Greeting name='Valeera'/>
            </View>
        );
    }
}

tips:代码示例中多次出现的 View 组件——常用作其他组件的容器,来帮助控制布局和样式

State 状态

props一经指定后,在组件的生命周期中将不再改变,若需要改变的数据,需要使用state。

import React, {Component} from 'react';
import {Text, View} from 'react-native';
class Blink extends Component{
    // 声明state对象
    state = {isShowingText: true};
    // mount时执行函数
    componentDidMount() {
        setInterval(()=>{
            this.setState({
                isShowingText: !this.state.isShowingText
            });
        }, 1000);
    }
    render(){
        if(!this.state.isShowingText) {
            return null;
        }
        return (
            <Text>{this.props.text}</Text>
        )
    }
}
export default class BlinkApp extends Component {
    render(){
        return (
            <View>
                <Blink text='I love to blink'/>
                <Blink text='Yes blinking is so great'/>
            </View>
        );
    }
}
上一篇 下一篇

猜你喜欢

热点阅读