由于微信小程序URL传参时,如果不转换数据并且参数带有特殊字符,则微信会截取数据,导致数据不完整。
所以,我们可以使用encodeURIComponent,对参数进行转换特殊字符。(注意:encodeURIComponent时,需要把对象数据转string格式)
// 组拼数据
let data = {
aa: 123,
bb: 456
}
let newData = JSON.stringify(data);
uni.navigateTo({
url: `/pages/xxxxxxx?data=${encodeURIComponent(newData)}`
});
跳转页面时,传参示例图
上图可以看到,有些数据的字符被转换了
最后,我们在跳转后的页面,再使用decodeURIComponent,转回正常数据,再使用JSON.parse即可获取完整数据。
let dData = decodeURIComponent(option.data);
let newData = JSON.parse(dData);
console.log(newData)
总结:
先把数据JSON.stringify转string格式,再使用encodeURIComponent对数据特殊字符进行转换。跳转页面后,使用decodeURIComponent把特殊字符转回来,再使用JSON.parse转成对象格式即可。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。