未捕获的类型错误:无法设置 null 的属性值
2019-03-06
2052
无法将属性“currentLat”设置为 null;我尝试全局声明所有变量,以便可以使用后者,但我不知道为什么当我调用变量并尝试设置其属性时总是得到 null。
currentLat: any;
currentLng: any;
ngOnInit() {
this.watchPosition();
}
watchPosition() {
var options = {
maximumAge: 3600000,
timeout: 3000,
enableHighAccuracy: true,
}
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
function onSuccess(position) {
this.currentLat=position.coords.latitude;
this.currentLng=position.coords.longitude ;
};
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
}
3个回答
this
在您的嵌套函数中不可用。您可以将
this
(如
onSuccess.bind(this);
)绑定到该函数,或轻松地将
this
分配给另一个变量。
watchPosition() {
const that = this;
const options = {
maximumAge: 3600000,
timeout: 3000,
enableHighAccuracy: true,
};
const watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
function onSuccess(position) {
that.currentLat = position.coords.latitude;
that.currentLng = position.coords.longitude ;
}
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
}
Maihan Nijat
2019-03-06
使用箭头函数访问“this”变量:
onSuccess = (position) => {
this.currentLat=position.coords.latitude;
this.currentLng=position.coords.longitude ;
}
miqrc
2019-03-06
的值此
是无效的,因为您在功能中使用了它。您可以改用
箭头功能
。
039616305
Franklin Pious
2019-03-06