效果:
引用文件代码:
import React, { Component } from 'react'; import { AppRegistry, Image, Text, View, StyleSheet, } from 'react-native'; var ZYButton = require('./ZYButton') class RNHybrid extends Component { render() { return( <View style={{marginTop:100,alignItems:'center'}}> <ZYButton clickBtn={()=>this.buttonClick()} btnStyle={styles.btnStyle} btnInnerTextStyle={styles.btnStyle} title="ZYButton" /> </View> ); } buttonClick(){ alert('buttonClick'); } }; const styles = StyleSheet.create({ btnInnerTextStyle:{ }, btnStyle:{ } }); AppRegistry.registerComponent('RNHybrid', () => RNHybrid);
ZYButton定制代码:
import React, { Component, PropTypes} from 'react'; import { AppRegistry, StyleSheet, Text, View, TouchableOpacity } from 'react-native'; export default class ZYButton extends Component { // 对外开放属性 static propTypes = { // 常用的属性 title: PropTypes.string, bgImage:PropTypes.func, btnStyle: View.propTypes.style, btnInnerTextStyle:Text.propTypes.style, // 响应事件 clickBtn: PropTypes.func }; static defaultProps = { clickBtn(){}, bgImage(){} }; constructor(props){ super(props); this.state = { selected:this.props.selected } } render() { return ( <TouchableOpacity style={[styles.btnViewStyle, this.props.btnStyle]} onPress={()=>this.props.clickBtn()} > {this.props.bgImage()} <Text style={[styles.btnTextStyle, this.props.btnInnerTextStyle]}>{this.props.title}</Text> </TouchableOpacity> ); } } const styles = StyleSheet.create({ btnViewStyle:{ backgroundColor:'red', width:120, height:40, justifyContent:'center', alignItems:'center', borderRadius:5 }, btnTextStyle:{ color:'#fff', fontSize:16, backgroundColor:'transparent' } }); module.exports = ZYButton;
作者:ZY_FlyWay 发表于2017/8/21 13:19:40 原文链接
阅读:45 评论:0 查看评论