我有一个反应原生的组件:
export default class Screen extends Component {
constructor(props){
super(props);
this.state = {
prop1: false,
prop2: simpleFunc
};
}
simpleFunc = () => { /*...*/ }
componentWillMount() {
BackgroundGeolocation.on('location', this.onLocation);
最后一行是将在新位置调用的回调方法
从这种方法,我无法访问this.state
或this.simpleFunc()
。
我应该怎么做才能从回调函数更新状态?
答案 0 :(得分:3)
要在this
内访问onLocation
,您需要绑定回调:
componentWillMount() {
BackgroundGeolocation.on('location', this.onLocation.bind(this));
或者,您可以使用箭头函数(将使用父级的词法范围):
componentWillMount() {
BackgroundGeolocation.on('location', (location) => this.onLocation(location));