react native button 按钮
发布时间:2020-12-15 08:19:09 所属栏目:百科 来源:网络整理
导读:用react native自定义一个button按钮 button代码,响应按下事件,设置获取disabled状态,设置获取显示文本 import React,{ Component } from 'react' ; import { AppRegistry,StyleSheet,Text,View,TouchableOpacity} from 'react-native' ;export default c
用react native自定义一个button按钮button代码,响应按下事件,设置获取disabled状态,设置获取显示文本 import React,{ Component } from 'react';
import {
AppRegistry,StyleSheet,Text,View,TouchableOpacity
} from 'react-native';
export default class Button extends Component {
constructor(props) {
super(props);
this.state = {
disabled: props.disabled,text: props.text,}
}
onPress_() {
if (typeof this.props.onPress === 'function') {
this.props.onPress();
}
}
setDisabled_(yes) { this.setState({disabled: yes}); }
isDisabled_() { return this.state.disabled; }
setText_(text) { this.setState({text: text}); }
text_() { return this.state.text; }
render() {
return (
<TouchableOpacity
style={[styles.button,this.state.disabled && styles.disabled]}
onPress={this.onPress_.bind(this)}
disabled={this.state.disabled} >
<Text style={styles.text}>
{this.state.text}
</Text>
</TouchableOpacity>
)
}
}
styles = StyleSheet.create({
button: {
backgroundColor:'#0c3ba9',width: 80,height: 40,justifyContent: 'center',borderRadius: 10,overflow: 'hidden',},text: {
textAlign: 'center',color: '#fff',fontSize: 16,disabled: {
backgroundColor: '#999999'
}
})
测试代码 import React,{ Component } from 'react';
import {
AppRegistry,TextInput
} from 'react-native';
import Button from '../common/Button.js'
export default class ButtonTest extends Component {
onToggle_() {
this.refs.okButton.setDisabled_(!this.refs.okButton.isDisabled_());
}
render() {
return (
<View style={styles.container}>
<Button ref="okButton" text="确定" onPress={()=>{alert(this.refs.okButton.text_())}} />
<Button text="切换状态" onPress={this.onToggle_.bind(this)} />
<TextInput style={styles.textInput} placeholder="改变确定按钮文本" onChangeText={(text) => this.refs.okButton.setText_(text)} />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,flexDirection: 'row',justifyContent: 'space-around',alignItems: 'center',backgroundColor: '#F5FCFF',textInput: {
width: 130,}
});
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |