gpt4 book ai didi

javascript - ReactJS:未捕获类型错误:无法读取未定义的属性 'setState'

转载 作者:行者123 更新时间:2023-11-30 07:21:59 25 4
gpt4 key购买 nike

我目前正在尝试在 reactJS 中构建一个小型天气应用程序(用于 freecodecamp 的应用程序)

目前我收到错误:“未捕获的类型错误:无法读取未定义的属性‘setState’”

这是代码笔的链接:http://codepen.io/rasmus/pen/aNGRJm

这是我猜的问题所在的代码:

  componentDidMount: () => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition((position) => {
$.ajax({
url: URL + "lat=" + position.coords.latitude + "&lon=" + position.coords.longitude + "&APPID=" + APIKEY,
success: (data) => {
this.setState({data: data})
}
});
})
}
},

url 不是问题。我可以将接收到的数据记录到控制台。

我猜这是因为 this 的范围..

有什么想法吗?

编辑:我不认为这是重复的,因为我只使用箭头函数,它们使 .bind(this) 过时

最佳答案

您的 ajax 函数中的回调不是从您的函数内部调用的,因此 this 没有指向您期望的内容,即您的类。

保存引用并从那里使用它:

componentDidMount: () => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition((position) => {
let self = this;
$.ajax({
url: URL + "lat=" + position.coords.latitude + "&lon=" + position.coords.longitude + "&APPID=" + APIKEY,
success: (data) => {
self.setState({data: data})
}
});
})
}
},

关于javascript - ReactJS:未捕获类型错误:无法读取未定义的属性 'setState',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689719/

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