gpt4 book ai didi

javascript - 数据变量未从 VueJS 中的方法更新

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:26 25 4
gpt4 key购买 nike

我正在使用以下代码从 HTML5 地理定位 API 获取访问者邮政编码(pin 码)。但是,我想获取该邮政编码并将其更新为数据变量“pincode”。下面是我使用的代码,值在控制台中正确打印。但不更新“pincode”变量。

export default {
data(){
return {
pincode: 0,
}
},
methods: {
findPincode(){
navigator.geolocation.getCurrentPosition(function (position) {
var geocoder = new google.maps.Geocoder();
var latLng = new google.maps.LatLng(
position.coords.latitude, position.coords.longitude);
geocoder.geocode({
'latLng': latLng
}, function (results, status) {
for (var i = 0; i < results[0].address_components.length; i++) {
var address = results[0].address_components[i];
if (address.types[0] == "postal_code") {
console.log(address.long_name) // prints 680001
this.pincode = Number(address.long_name) // not working
}
}
});
});
}
}
}

最佳答案

这是因为您在 geocoder.geocode 函数中丢失了 this 的上下文

let self = this
geocoder.geocode({
'latLng': latLng
}, function (results, status) {
for (var i = 0; i < results[0].address_components.length; i++) {
var address = results[0].address_components[i];
if (address.types[0] == "postal_code") {
console.log(address.long_name) // prints 680001
self.pincode = Number(address.long_name) // not working
}
}
});

这应该有效。

关于javascript - 数据变量未从 VueJS 中的方法更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41995304/

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