平时我们传递参数是这样子的:
// 第一个页面
data(){
return{
info: {
name: "内容",
time: "2022-2-2"
update: "2022-3-2"
}
}
},
methods(){
toOuter(data){
uni.navigateTo({
url: `/pages/outer/outer?info= ${JSON.stringify(data)}`
})
}
}
// 第二个页面
onLoad(params){
if(params.data){
let obj = JSON.parse(params.data)
}
}
但是, 这种传递参数的方法有一个缺陷,就是有可能接收的数据不全, 被截断了, 导致页面无法拿到正确的完整的数据, 会报错, 为了解决这个问题, 提出以下的解决方法:
// 第一个页面
data(){
return{
info: {
name: "内容",
time: "2022-2-2"
update: "2022-3-2"
}
}
},
methods(){
toOuter(data){
uni.navigateTo({ // 函数可把字符串作为 URI 组件进行编码
url: `/pages/outer/outer?info= ${encodeURIComponent(JSON.stringify(data))}`
})
}
}
// 第二个页面
onLoad(params){
if(params.data){ // 函数可把字符串作为 URI 组件进行编码
let obj = JSON.parse(decodeURIComponent(params.data))
}
}