关于“Maximum call stack size exceeded”的解决方法
关于“Maximum call stack size exceeded”的解决方法原因深入分析解决方法原因页面未渲染完成就点击内部或者外部的事件按钮// 导致错误的源码onLoad() {let phone = uni.getStorageSync('phone');uni.request({url: this.api+'api/info/get_info',...
·
关于“Maximum call stack size exceeded”的解决方法
对于这个问题网上也是各有各的说法,我就给出一个自己心得吧。
因为项目是用uni-app做的,所以大家参考参考就好。
原因
页面未渲染完成就点击内部或者外部的事件按钮
// 导致错误的源码
onLoad() {
let phone = uni.getStorageSync('phone');
uni.request({
url: this.api+'api/info/get_info',
method: 'POST',
data: {phone: phone},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: res => {
this.data = res.data;
}
});
}
深入分析
因为是在页面周期onLoad内出现的错误。因此我判断是由于本地缓存中没有关键词phone,但是程序依然继续向下执行了request请求,从而导致页面渲染缓慢。
解决方法
不说废话,直接上代码,注意看 注释 !!!
// 导致错误的源码
onLoad() {
let phone = uni.getStorageSync('phone'); //本地缓存
if(!phone) return; //只需要在这里加一步判断,不存在就返回false即可
uni.request({
url: this.api+'api/info/get_info', //接口
method: 'POST',
data: {phone: phone},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: res => {
this.data = res.data;
}
});
}
更多推荐
所有评论(0)