我在更改状态值时遇到问题。它会给出mi跟随错误 “Undefine不是一个功能(评估' this.setState({ switchValue:假 })')“
我已经搜索了堆栈溢出,但解决方案对我不起作用。
import React, { Component } from 'react';
import {
Alert,
AppRegistry,
StyleSheet,
Text,
View,
Switch
} from 'react-native';
export default class AwesomeProject extends Component {
constructor(props) {
super(props);
this.state = {switchValue: true};
// Toggle the state every second
}
_onPressButton() {
this.setState({
switchValue: false
});
}
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Switch
onValueChange={this._onPressButton}
value={this.state.switchValue }
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);
答案 0 :(得分:0)
this
内的_onPressButton
未引用正确的引用。在这种情况下,this
内的_onPressButton
实际上是引用按钮。你可以这两种方式做到这一点。
<Switch
onValueChange={this._onPressButton.bind(this)}
value={this.state.switchValue }
/>
或者
<Switch
onValueChange={() => this._onPressButton()}
value={this.state.switchValue }
/>