- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
这是data里面的内容:
data:{
longitude:"",
latitude:"",
},
我先调用了一个函数
getposition() {
var self=this;
wx.getLocation({
type: 'gcj02',
success(res) {
self.setData({//回调函数里面不能再用this
latitude:res.latitude,
longitude:res.longitude
})
}
})
}
将目前位置的经纬度信息传给data,然后wxml里面也实现了我想要的map功能
可是当我想输出一下latitude
console.log(this.data.latitude)
控制台输出为空,也就是我初始给的值,这是为什么?
this指向问题 你可以打印一下this就知道了
已经用self保存了this 就用self
不是那样子,
onShow(){
this.getposition();
console.log(this.data.latitude)
}
getposition() {
var self=this;
wx.getLocation({
type: 'gcj02',
success(res) {
self.setData({//回调函数里面不能再用this
latitude:res.latitude,
longitude:res.longitude
})
}
})
}
self是函数里面的,我想在onshow里面打印,却打印不出来好奇怪
试试在setData后打印 应该是异步问题
在setData后打印是有值的,这种异步问题该怎么解决啊,我之后也碰到了和这个相似的问题,最后解决办法都是很粗暴
后续方法放在success里执行,setData也可以写回调的
在getposition()里面就写console.log(self.data.latitude)
不好意思我问题没说清楚,latitude的打印不是在那个函数里面。
其实我就是想把在getposition里面赋值好的latitude赋值给别的变量,发现不成功,才打印这个变量试一下的