如何从回调函数访问状态[重复]

Posted

技术标签:

【中文标题】如何从回调函数访问状态[重复]【英文标题】:How to access state from callback function [duplicate] 【发布时间】:2017-06-19 08:13:01 【问题描述】:

我有一个 react native 的组件:

export default class Screen extends Component 
  constructor(props)
    super(props);
    this.state = 
      prop1: false,
      prop2: simpleFunc
    ;
  
  simpleFunc = () =>  /*...*/ 

  componentWillMount() 
      BackgroundGeolocation.on('location', this.onLocation);

最后一行是回调方法,将在新位置调用。 通过该方法,我无法访问 this.statethis.simpleFunc()。 我应该怎么做才能从回调函数中更新状态?

【问题讨论】:

是因为你使用了箭头函数吗? 位置如下:onLocation(location) 【参考方案1】:

要访问onLocation 内部的this,您需要绑定回调:

  componentWillMount() 
      BackgroundGeolocation.on('location', this.onLocation.bind(this));

或者,您可以使用箭头函数(将使用父级的词法范围):

  componentWillMount() 
      BackgroundGeolocation.on('location', (location) => this.onLocation(location));

【讨论】:

以上是关于如何从回调函数访问状态[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何创建从回调函数返回承诺的函数[重复]

如何将我的代码从回调函数更改为承诺 [重复]

设置状态后反应挂钩相当于回调函数[重复]

React hooks:从回调中访问最新状态

处理回调函数[重复]

带有回调的 React Hooks useState [重复]