TouchableHighlight onPress 自动执行了



  • export default class ShotsScreen extends Component {
    constructor(props) {
    super(props);
    this.state = {data: "empty"};
    }
    _onReset() {
    console.log("onReset");
    };
    render() {
    return (
    <View style={{flex: 1}}>
    <TouchableHighlight onPress={() => this._onReset()}>
    <View style={styles.button}>
    <Text style={styles.buttonText}>{this.state.data}</Text>
    </View>
    </TouchableHighlight>
    </View >
    );
    }
    }
    这是部分代码 ,onPress={()=> this._onReset()}这样写的话,_onReset()没有立即执行,是等到我点击之后才会执行,这是预期的结果,但onPress={this._onReset()}这样写的话,刚进入这个界面,_onReset()直接就执行了,没有任何点击。。查了立即执行函数相关的东西,但还是没明白,,求大神解释



  • 试下这样 onPress={ this._onReset}



  • 了解,这样就需要绑定this



  • onPress={this._onReset()}
    这样写法的意思把this._onReset()运行的值给onPress,而不是把this._onReset这个方法赋值给onPress


登录后回复