gpt4 book ai didi

javascript - 命名函数导致 setState 错误

转载 作者:行者123 更新时间:2023-12-02 20:53:51 26 4
gpt4 key购买 nike

这是我的应用程序类

  constructor(props) {
super(props);

this.state = { lat: null, errorMessage: "" };

window.navigator.geolocation.getCurrentPosition((position) => {
this.setState({ lat: position.coords.latitude });
});
}

当我将箭头函数更改为使用单词函数时,它会抛出一个错误,指出无法读取未定义的 setState 的属性

  constructor(props) {
super(props);

this.state = { lat: null, errorMessage: "" };

window.navigator.geolocation.getCurrentPosition(function (position) {
this.setState({ lat: position.coords.latitude });
});
}

语法有问题吗?

最佳答案

上下文不同,这不是 React 的一部分,它更多地与 javascript 有关。

传统函数将使用调用者的this(通常是事件触发器)

但是,箭头函数将使用当前函数上下文中的 this ,在本例中是 react 组件,这就是它在箭头函数上工作的原因。

关于javascript - 命名函数导致 setState 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61536701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com