小程序在页面跳转时带参转为JSON格式发送报错
原代码:
emoji(e) {
const _this = this
console.log(e.detail.index)
uni.navigateTo({
url: '../detail/detail?data=' + JSON.stringify(_this.emojilist[e.detail.index])
})
},
onLoad(opt) {
let data = opt.data
console.log(JSON.parse(opt.data))
}
解决方案:
参中有特殊符号需要使用encode转义,使用decode转译回JSON格式后再转Object就可以了
修改后代码:
emoji(e) {
const _this = this
console.log(e.detail.index)
let data = JSON.stringify(_this.emojilist[e.detail.index])
uni.navigateTo({
url: '../detail/detail?data=' + encodeURIComponent(data)
})
},
onLoad(opt) {
const {
data = {}
} = opt;
const info = JSON.parse(decodeURIComponent(data));
console.log(info)
}