我有一个组件反应本机:
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()
如何从回调函数更新状态?
要访问内部
onLocation
中的此
,您需要绑定回调:
componentWillMount() {
BackgroundGeolocation.on('location', this.onLocation.bind(this));
或者,您可以使用箭头函数(将使用父级的词法范围):
componentWillMount() {
BackgroundGeolocation.on('location', (location) => this.onLocation(location));
问题内容: 如何从exec函数之外找到用户名? 问题答案: 您可以将exec函数传递给回调函数。当exec函数确定用户名时,您将使用用户名调用回调。 由于JavaScript的异步特性,您无法执行以下操作: 这是因为该行不会等到上面的函数完成。 回调说明:
编辑(2020年6月22日):由于这个问题引起了一些新的兴趣,我意识到可能会有一些困惑。因此,我想强调:问题中的例子是作为玩具的例子。它没有反映问题。引发这个问题的问题是使用第三方库(对该库的控制有限),该库将回调作为函数的参数。提供最新状态的回调的正确方法是什么?在反应类中,这可以通过使用this来完成。在React钩子中,由于状态封装在函数中的方式,如果回调通过获取状态,它将是过时的(值设置回
问题内容: 看来我无法访问jquery ajax成功函数内的$(this)。请参见下面的代码。 问题答案: 应该怎么办 如果在该函数之外有对它的引用,则可以将其存储到变量中。
我如何访问函数的结果,以便以后处理它 例如
我想在构造函数中访问多个位置的状态值。当我在构造函数中输入console.log(this)时,我可以看到可以访问特定的值,但是当我输入console.log this.state时,我没有定义。 这就是我想象的工作方式(我想访问CSSValue中的状态): 但是,当我运行此代码: 然后我在控制台中得到这个: 但是当我将console.logconsole.log(this.state)它打印未定
问题内容: 我如何使这个小功能“ imageExists”返回ajax请求是否成功? 问题答案: 我相信您将必须使用同步模式并使用单独的变量来存储返回值。