问题:
我们在小程序的A页面向B页面跳转的时候,传了页面参数为params,由于页面参数值只能是字符串,所以这里用到了json解析,部分参数包含特殊字符会出现json解析失败。
A页面
navigateTo(e){
let item = e.currentTarget.dataset.params;
wx.navigateTo({
url: '../alarmHistory/alarmHistory?info=' + JSON.stringify(item)
})
}
B页面
onLoad: function (options) {
let info = JSON.parse(options.info)
console.log(options)
this.setData({
info: info
})
},
json解析失败报错:
解决方法:
通过将A页面需要传的数据赋值给全局变量app.js中的全局变量,然后B页面getApp()获取全局变量就可以了。
app.js
globalData: {
pageInfo: null,//用于临时存储页面跳转时传递的数据,解决JSON无法解析特殊字符的问题
...
}
A页面
navigateTo(e){
let item = e.currentTarget.dataset.params;
app.globalData.pageInfo = item //设置全局变量
wx.navigateTo({
url: '../alarmHistory/alarmHistory'
})
}
B页面
onLoad: function (options) {
this.setData({
info: app.globalData.pageInfo,
})
// console.log(app.globalData.pageInfo)
},
参考:
https://blog.csdn.net/qq_35324453/article/details/82259882
网友评论