1. 在constructor里面可以绑定,例如:
constructor(){
this.xxx = this.xxx.bind(this);
}
2. 在调用的时候可以绑定,例如:
onClick= {this.xxx.bind(this)}
3. 在调用的时候,换一种写法, 例如:
constructor(){
this.xxx = this.xxx.bind(this);
}
2. 在调用的时候可以绑定,例如:
onClick= {this.xxx.bind(this)}
3. 在调用的时候,换一种写法, 例如:
onClick = { () => this.xxx()}
贴个错误的代码:
class hello1 extends Component { constructor(props){ super(props); this.state = { val: 0 }; } render() { return ( <View> <Text onPress={this._onPress}> 点我 </Text> </View> ); } _onPress() { this.setState({val: this.state.val + 1}); alert(this.state.val); } } 当点击 “点我” 的时候,程序报错且val值没有改变,原因是js的this是在调用时绑定的,所以onPress时this不是指向你的hello1对象,为了避免这个问题,需要提前用bind绑定好以确保调用的时候this也是指向hello1。