我正在制作一个计算器,在一个屏幕上有多个开关(使用react-native Switch)。根据启用或禁用的开关,我想写一个if / else语句。在我的if / else语句中,我想访问Switch的值,无论是打开还是关闭。 Facebook React Native Switch页面并不清楚我如何使用交换机并传递信息。
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View,
Image,
TouchableOpacity,
Switch,
TextInput,
Alert
} from 'react-native';
export class TimiCalculator extends Component {
constructor(props) {
super(props);
this.state = { SwitchValue: false };
}
render() {
return (
<View style={styles.container}>
<Switch
onValueChange={(value) => this.setState({SwitchValue: value})}
value={this.state.SwitchValue} />
</View>
<TouchableOpacity style={styles.buttonCalculate} onPress={this.showCalculation}>
<Text style={styles.title}> Calculate </Text>
</TouchableOpacity>
</View>
);
}
showCalculation() {
if (ACCESS_STATE_OF_TOGGLE_SWITCH_HERE == true) {
*DO THIS
} else {
*DO THIS INSTEAD
}
Alert.alert('Your output is' + answer)
}
}
答案 0 :(得分:3)
我建议你阅读https://facebook.github.io/react-native/docs/state.html,因为状态是React开发的基础。在这种情况下,你不知道如何引用状态。
这是最简短,最干净的答案
import React, { Component } from 'react';
import {
Text,
View,
TouchableOpacity,
Switch,
} from 'react-native';
export class TimiCalculator extends Component {
state = {isSwitchOn: false}
showCalculation = () => {
if (this.state.isSwitchOn) {
// do something
} else {
// do something else
}
}
render() {
return (
<View style={styles.container}>
<Switch
onValueChange={isSwitchOn => this.setState({isSwitchOn})}
value={this.state.isSwitchOn}
/>
<TouchableOpacity style={styles.buttonCalculate} onPress={this.showCalculation}>
<Text style={styles.title}> Calculate </Text>
</TouchableOpacity>
</View>
);
}
}
答案 1 :(得分:1)
showCalculation() {
if (this.state. SwitchValue == true) {
//do here what you want
this.setState({SwitchValue:false});
} else {
this.setState({SwitchValue: true});
}
如果你想实现计算器,我建议你使用这段代码。