我正在做天气应用程序,其中getCoords功能已激活一次,找到我!'单击按钮:
getCoords(e){
e.preventDefault();
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition((position) =>{
const long = position.coords.longitude,
lat = position.coords.latitude;
console.log(`long ${long} and lat ${lat}`);
this.setMessage('http://api.openweathermap.org/data/2.5/forecast?lat='+lat+'&lon='+long+"&APPID=mykey");
}).bind(null,this);
}
}
我很高兴从结果中得到它并且确实有效,因为我预计在控制台中会出现很多错误,这让我感到有点担心。 火狐:
TypeError:navigator.geolocation.getCurrentPosition(...)未定义
chrome和Opera:
未捕获的TypeError:无法读取属性' bind'未定义的 在WeatherApp.getCoords(app.bundle.js?49cb1f92ba06aee2ea42:374)
歌剧:
无法加载资源:服务器响应状态为404(未找到)
答案 0 :(得分:0)
你没有将'this'绑定到tu函数,而是它的返回值。
'bind'是Function原型的一种方法。我不确定你为什么要使用绑定调用。在调用函数之前,只需将其删除或调用即可。