zoukankan      html  css  js  c++  java
  • RN正、反向传值,组件输出

    很简单的一个小Demo,绿色的是输出的一个组件,目标把’爱好‘从父组件传给子组件,然后把’name‘从子组件传给父组件

    父组件给子组件传值可以使用props,子组件传值给父组件可以使用事件,这里不多说直接上代码,

    子组件代码:

    //获取屏幕尺寸
    var Dimensions = require('Dimensions');
    var {width, height} = Dimensions.get("window");
    
    export default class CustomView extends Component {
        static defaultProps = {
            age: 18,
            love: '',
            name:'',
            onclick:null
        }
    
        constructor(props) {
            super(props);
            this.state = {
                //state创建
                name: '张三'
            }
        }
        _click(name){
            // 反向传值
            this.props.onclick(name);
        }
    
        render() {
            return (
                <View style={styles.wrapper}>
                    {/*修改state*/}
                    <TouchableOpacity onPress={()=>{this.setState({"name": "李四"})}}>
                        <Text>{this.state.name},你好,年龄{this.props.age},爱好{this.props.love}</Text>
                    </TouchableOpacity>
                    {/*点击事件*/}
                    <TouchableOpacity onPress={()=>this._click(this.state.name)} style={{marginTop: 20}}>
                        <Text>点击我把name输出出去</Text>
                    </TouchableOpacity>
                </View>
            )
        }
    }
    
    const styles = StyleSheet.create({
        wrapper: {
             width,
            height: 200,
            alignItems: 'center',
            justifyContent: 'center',
            backgroundColor: '#00ff00'
        }
    });
    // 把当前的Component输出
    module.exports = CustomView;
    

     父组件的代码只写重点,style自己组织

    customViewClick(name) {
            alert(name)
        }
        render() {
    
            return (
                <View style={styles.wrapper}>
                    <TouchableOpacity onPress={()=>this.click()}>
                        <View style={styles.textStyle}>
                            <Text>1243</Text>
                        </View>
                    </TouchableOpacity>
    
                    <CustomView
                        //正向props传值
                        love="跑步、画画"
                        //反向传值
                        onclick={(name) => this.customViewClick(name)}
                    />
    
                </View>
            )
        }
    
  • 相关阅读:
    attempted to return null from a method with a primitive return type (Double).
    window7 虚拟机安装
    DB 与oracle 批量新增的写法
    oracle 修改表
    备份还原oracle数据库
    oracle数据库的字符集更改
    IMP-00013
    oracle创建用户授权权限
    java中添加定时任务
    程序在运行过程中变量的保存位置与生命周期
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/9999970.html
Copyright © 2011-2022 走看看