【uniapp】TypeError: Cannot read property “year“ of null

问题描述:
出现这种问题,一般来说是使用了空值,以标题为例,这个数据格式肯定(目前为止我觉得)是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;
	}
	
}

完结撒花~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值