原代码如下所示:
getWifiList() {
uni.getWifiList({
success: res => {
console.log('res',res);
uni.onGetWifiList(function(res) {
this.wifiList = res.wifiList;
console.log('wifiList',wifiList);
});
},
fail: err => {
console.error('获取WiFi列表失败:', err);
}
});
}
控制台可以打印出WiFiList,但是AppData里WiFiList为空,且页面不展示。
报错原因:在 uni.onGetWifiList
的回调函数中,使用了 this.wifiList
,但是这里的 this
不再指向组件实例。因此,无法正确地更新 wifiList
。解决这个问题的方法是使用箭头函数,将回调函数转换为箭头函数以保持正确运行。
修改如下:
getWifiList() {
uni.getWifiList({
success: res => {
console.log('res', res);
uni.onGetWifiList((res) => {
this.wifiList = res.wifiList;
console.log('wifiList', this.wifiList);
});
},
fail: err => {
console.error('获取WiFi列表失败:', err);
}
});
}