按下更改状态

时间:2015-11-06 09:39:21

标签: ios reactjs react-native

当我点击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>
    );
}

1 个答案:

答案 0 :(得分:4)

对于React.Component es6类,您需要将回调的上下文绑定到this(您的类实例)。您可能习惯React.createClass在幕后为您做了一些约束:

<TouchableOpacity onPress={this.clickText.bind(this)}>

您还可以与arrow functions绑定:

<TouchableOpacity onPress={e => this.clickText(e)}>