中小企业建站服务,erlang做网站优势,网站建设课设总结报告,注册建设网站的公司哪家好使用uniapp传参的过程中遇到这么一个问题#xff0c;当我们需要传整个对象作为参数时#xff0c;我会先将这个对象先编码#xff0c;然后再解码#xff0c;从而获取到怎么参数#xff0c;平常实操的时候也没有遇到过问题#xff0c;但是今天测试的时候#xff0c;刚好一…使用uniapp传参的过程中遇到这么一个问题当我们需要传整个对象作为参数时我会先将这个对象先编码然后再解码从而获取到怎么参数平常实操的时候也没有遇到过问题但是今天测试的时候刚好一个数据碰巧就报错了报错内容就是
//跳转前页面的方法
toDeviceDetail(deviceInfo) {//传参对象使用encodeURIComponent编码let query encodeURIComponent(JSON.stringify(deviceInfo))uni.navigateTo({url:/pages/……/deviceDetail?deviceQuery query})
},// 跳转后页面获取的参数的方法
onLoad(options) {let obg {}// 获取传递的对象参数使用decodeURIComponent解码并转为对象obj JSON.parse(decodeURIComponent(options.deviceQuery));
}bug原因是如果编码的对象中的参数有“%”,那么就会对编码跟解码造成问题从而报错 解决方案正常解码编码时对所有“%”进行单独处理手动转换为“%25”代码如下
toDeviceDetail(deviceInfo) {//传参对象使用encodeURIComponent编码let str JSON.stringify(deviceInfo)//注意这里——————————————————————str str.replace(/%/g, %25)//这里———————————————————————————let query encodeURIComponent(str)uni.navigateTo({url:/pages/……/deviceDetail?deviceQuery query})
},最终实现在uni-app中跳转页面并传递对象参数的需求 解决这个问题的关键就是需要手动转换为“%25”