问题描述:
出现这种问题,一般来说是使用了空值,以标题为例,这个数据格式肯定(目前为止我觉得)是data.data.year,data为null或者undefined。
那么问题来了,在第一次进入页面时,我搜索文件,并没有发现哪里用了空值,代码如下:
onLoad:function(){
//获得数据data
var year=data.data.year;
},
onShow:function(){
var pages = getCurrentPages();
var currPage = pages[pages.length - 1];
if (currPage.id == undefined) {
return;
}
//通过id获得数据data
var year=data.data.year;
}
上面的逻辑就是:当我第一次进入页面时,onLoad和onShow都会运行,但是通过onLoad我们可以拿到year的值,对于onShow来说,因为第一次id为空,所以return,下面的代码不运行,通过控制台输出我们可以看到确实没有运行
但是这样写会报错,onShow中必须判断一下data.data是否null或undefined。即使id为空,没有走到下一步,仍然要判断data.data
onLoad:function(){
//获得数据data
var year=data.data.year;
},
onShow:function(){
var pages = getCurrentPages();
var currPage = pages[pages.length - 1];
if (currPage.id == undefined) {
return;
}
//通过id获得数据data
if(data.data!=null&&data.data!=undefinded){
var year=data.data.year;
}
}
完结撒花~