美文网首页
ReactNative 封装按钮

ReactNative 封装按钮

作者: linzaifei | 来源:发表于2017-06-08 10:31 被阅读251次
    1. 首先创建一个ButtonView.js

    编写button 并设置样式

      <View style = {styles.container}>
            <TouchableHighlight
                style={[styles.btnDefaultStyle,this.props.btnStyle,styles.center]}
                activeOpacity={0.5}
                underlayColor={this.props.underlayColor}
                onPress={this.props.onPress}>
    
                <Text style={[this.props.TextStyle,styles.textDefaultStyle]}>{this.props.btnName}</Text>
    
            </TouchableHighlight>
        </View>
    const styles = StyleSheet.create({
       container: {
          flexDirection:'row',
          justifyContent: 'center',
          alignItems: 'center',
      },
      center:{
          justifyContent:'center',
          alignItems:'center',
      },
      btnDefaultStyle:{
          height:30,
          width:100,
          backgroundColor: '#ff8447',
          borderColor: '#ff8447',
          borderRadius: 5,
      },
      textDefaultStyle:{
         color:'#ffffff',
          fontSize:15,
      },
    });
    

    TouchableHighlight 中样式 styles.btnDefaultStyle 标示默认样式 this.props.btnStyle 标示对外抛出的属性接口可以从外面修改

    下面属性可以不写
     /*个属性
      *  btnName 按钮名称
      * textStyle 文本样式
      * btnStyle 按钮样式
      * underlayColor 点击后颜色
      * */
    // static propTypes = {
    //     btnName: PropTypes.string,
    //     textStyle: Text.propTypes.style,
    //     btnStyle: TouchableHighlight.propTypes.style,
    //     underlayColor: TouchableHighlight.propTypes.underlayColor,
    // }
    

    给按钮默认值

     static defaultProps = {
        btnName: 'Button',
        underlayColor: 'gray',
    };
    
    2.从外面调用组件
    <View style = {styles.container}>
          <ButtonView
            btnName='点击一下'
            btnStyle = {{width:200,height:30,backgroundColor:'red'}}
            onPress = {this._renderContent}
           ></ButtonView>
     </View>

    相关文章

      网友评论

          本文标题:ReactNative 封装按钮

          本文链接:https://www.haomeiwen.com/subject/xbpzfxtx.html