当传参数据过大时,会超出传参长度的限制,导致接收时数据不全因而页面报错。
可以利用encodeURIComponent()方法可以让字符串作为 URI 组件进行编码,传入一个字符串,含有 URI 组件或其他要编码的文本,返回URIstring 的副本,其中的某些字符被十六进制的转义序列转换成对应的ACSII字符。。
//传值的页面
uni.navigateTo({
url: '/page/index?obj=' + encodeURIComponent(JSON.stringify(obj)) //因为接收参数是字符串,所以使用JSON.stringify()把数据转换成字符串
})
接收时可以用decodeURIComponent() 函数把字符串作为 URI 组件进行解码,传入一个字符串,含有 URI 组件或其他要编码的文本,返回URIstring 的副本,其中的某些字符被十六进制的转义序列转换成对应的ACSII字符。
//接受参数的页面
onLoad(option) {
this.data = JSON.parse(decodeURIComponent(option.obj)) //此时传过来的数据是字符串类型,所以直接使用decodeURIComponent解码,然后再使用JSON.parse()解析
}