当我点击TouchableOpacity时,我想更改Text元素中的字符串。但每当我点击它时都会给我一个错误.setState不是一个函数。
这是我的代码:
constructor(props) {
super(props);
this.state = {
sampleText: "Click Here"
};
}
clickText() {
this.setState({
sampleText: 'Hello World'
});
}
render() {
return (
<View style={styles.container}>
<TouchableOpacity onPress={this.clickText}>
<View style={[styles.avatar, styles.avatarContainer]}>
<Text>{this.state.sampleText}</Text>
</View>
</TouchableOpacity>
</View>
);
}
答案 0 :(得分:4)
对于React.Component
es6类,您需要将回调的上下文绑定到this
(您的类实例)。您可能习惯React.createClass
在幕后为您做了一些约束:
<TouchableOpacity onPress={this.clickText.bind(this)}>
您还可以与arrow functions绑定:
<TouchableOpacity onPress={e => this.clickText(e)}>