一、问题
微信小程序页面突然报错,然而之前还是好使的;为啥突然不好使了???
百度过后,有人说是JSON.parse
造成的
回顾了下代码,发现果然是它造成的。。。
Error in mounted hook: “SyntaxError: Unexpected end of JSON input”
报错原因
JSON.parse(str) 如果str 的 json 格式错误,JSON.parse 就会生成一个 error
// 错误代码
// 错误原因分析:下面写法没有错,错在 uni.getStorageSync 获取的字段还没存入到storage里
// 所以 userinfo 为空字符串,所以在JSON.parse的时候报错了
let userinfo = uni.getStorageSync('USER_INFO');
console.log('获取到的userinfo', userinfo==''); // 获取到的userinfo true
this.loginUserId = JSON.parse(userinfo).id;
解决
只需要判断下,登录后,userinfo有值后再获取
if(this.token){
let userinfo = uni.getStorageSync('USER_INFO');
this.loginUserId = JSON.parse(userinfo).id;
}