一、问题
在跳转页面时,路径需要带一些参数类型,query和params,当带入params为一个对象的时候,首先要把对象转为字符串类型,然后在对应的页面转为所需对象从而实现效果
A传递页面:
GetAddContainer(e){
let money = e.currentTarget.dataset.money
console.log(money);
const data = JSON.stringify(money)
wx.navigateTo({
url: `/pages/tixian/tixian?data=` +data,
})
},
B接收页面:
onLoad(options) {
let valOptions = JSON.parse((options.data))
this.setData({
tixianUserInfo:valOptions,
})
this.getstoreInfo()
console.log(this.data.tixianUserInfo);
},
二、解决
如若传递参数未包含 ?& * 等特殊字符,可正常传递,如若包含特殊字符其中一类,即会出现以上问题,可通过在传递参数的时候携带encodeURIComponent特殊解决编码,再在接受参数的时候进行使用decodeURIComponent特殊解决编码,进行解析特殊字符
A传递页面:
GetAddContainer(e){
let money = e.currentTarget.dataset.money
console.log(money);
const data = JSON.stringify(money)
wx.navigateTo({
url: `/pages/tixian/tixian?data=` + encodeURIComponent(data),
})
},
B接收页面:
onLoad(options) {
let valOptions = JSON.parse(decodeURIComponent(options.data))
this.setData({
tixianUserInfo:valOptions,
})
this.getstoreInfo()
console.log(this.data.tixianUserInfo);
},
成功结果: