一、有时候undefined不一定就是undefined
今天,菜鸟在进行微信小程序页面跳转时,进行了传递参数,而页面传递参数的时候,像数字、字符串之类的可以直接传递,对象和数组需要用JSON.stringify()转成字符串再进行传递。然后在跳转页面的onLoad函数中用JSON.parse()转成原型再使用。
但是当后台返回为 空 或者 undefined 的时候,这时候传递过去的就是undefined
这个时候 JSON.parse() 就会报错:
这个时候一般都是会先判断一下,是否为undefined然后确定是否 JSON.parse() ,这里就到了很坑的时候了,如果你直接这样写:
onLoad: function (options) {
console.log(options.informList); //undefined
if(options.informList !== undefined ){
console.log(222);
var test = JSON.parse(options.informList);
console.log(test);
this.setData({
testlist: test,
num:test.length
})
console.log(this.data.num);
}else{
console.log(111);
this.setData({
num:0
})
}
},
这样运行的结果会非常的匪夷所思,这时候打印一下 options.informList 的类型就恍然大悟了,原来传递过来的时候被转换为String类型了,所以这里的undefined就不是undefined了!
解决办法:
onLoad: function (options) {
console.log(options.informList);
console.log(typeof(options.informList));
if(options.informList !== "undefined" ){
console.log(222)
var test = JSON.parse(options.informList);
console.log(test);
this.setData(