为什么我不能在 html...vue js 中使用变量
Why can't I use a variable in html... vue js
我获得了有关位置的信息,但无法在 html.error => 未捕获(承诺)TypeError 中使用它:
无法设置未定义的属性(设置 'geoLocationPlace')。为什么
变量(geoLocationPlace)未定义?
data() {
return {
inputValue:null,
searchedPlace:null,
geoLocationPlace:null,
}
},
getLocation(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
let long = position.coords.longitude;
let lat = position.coords.latitude;
fetch(`https://api.bigdatacloud.net/data/reverse-geocode-client?
latitude=${lat}&longitude=${long}&localityLanguage=en`)
.then(res => {
return res.json()
})
.then(resData => {
//resData.countryName return country
this.geoLocationPlace = resData.countryName
console.log(this.geoLocationPlace)
})
})
问题是 this
“丢失”了,因为您使用常规函数作为 navigator.geolocation.getCurrentPosition
的回调
您清楚地了解箭头函数的必要性,因为您的 fetch
链使用了它们,所以我只能得出结论,您只是错过了这个函数
getLocation(){
if(navigator.geolocation){
// fix the next line like so
navigator.geolocation.getCurrentPosition((position) => {
let long = position.coords.longitude;
我获得了有关位置的信息,但无法在 html.error => 未捕获(承诺)TypeError 中使用它: 无法设置未定义的属性(设置 'geoLocationPlace')。为什么 变量(geoLocationPlace)未定义?
data() {
return {
inputValue:null,
searchedPlace:null,
geoLocationPlace:null,
}
},
getLocation(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
let long = position.coords.longitude;
let lat = position.coords.latitude;
fetch(`https://api.bigdatacloud.net/data/reverse-geocode-client?
latitude=${lat}&longitude=${long}&localityLanguage=en`)
.then(res => {
return res.json()
})
.then(resData => {
//resData.countryName return country
this.geoLocationPlace = resData.countryName
console.log(this.geoLocationPlace)
})
})
问题是 this
“丢失”了,因为您使用常规函数作为 navigator.geolocation.getCurrentPosition
您清楚地了解箭头函数的必要性,因为您的 fetch
链使用了它们,所以我只能得出结论,您只是错过了这个函数
getLocation(){
if(navigator.geolocation){
// fix the next line like so
navigator.geolocation.getCurrentPosition((position) => {
let long = position.coords.longitude;