当前位置: 首页 > news >正文

Error in onLoad hook: “URIError: URI malformed“ found in…报错处理以及完善uniapp针对对象传参

使用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”

http://www.lryc.cn/news/269464.html

相关文章:

  • c语言-位操作符练习题
  • 园林机械部件自动化三维测量检测形位公差-CASAIM自动化三维检测工作站
  • o2o生活通全开源尊享版+多城市切换+企业付款+交友IM+平台快报
  • UE4开发BIM程序 的 流程
  • 【AI大语言模型】ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用
  • 【面试题】写一个睡眠函数
  • 4. 云原生之kubesphere基础服务搭建
  • 思福迪运维安全管理系统 任意文件读取漏洞
  • OCR在审核应用落地
  • 借贷协议 Tonka Finance:铭文资产流动性的新破局者
  • Python+Yolov5+Qt交通标志特征识别窗体界面相片视频摄像头
  • 浅谈高并发以及三大利器:缓存、限流和降级
  • 深入ArkUI:深入实战组件text和text input
  • WPF 基础(Binding 二)
  • 限制el-upload组件的上传文件大小
  • 什么是爬虫,为什么爬虫会导致服务器负载跑满
  • 线上隐私保护的未来:分布式身份DID的潜力
  • 服务器被入侵后如何查询连接IP以及防护措施
  • 【开源】基于Vue+SpringBoot的公司货物订单管理系统
  • 2023-12-29 服务器开发-Centos部署LNMP环境
  • CEC2017(Python):五种算法(DE、RFO、OOA、PSO、GWO)求解CEC2017
  • 数字身份验证:跨境电商如何应对账户安全挑战?
  • Nature | 大型语言模型(LLM)能够发现和产生新知识吗?
  • C# 使用ZXing.Net生成二维码和条码
  • Windows系统配置pytorch环境,Jupyter notebook编辑器安装使用(深度学习本地篇)
  • 详解“量子极限下运行的光学神经网络”——相干伊辛机
  • uniapp通过蓝牙传输数据 (安卓)
  • LT8612UX-HDMI2.0 to HDMI2.0 and VGA Converter with Audio,支持三通道视频DAC
  • python gui programming cook,python gui视频教程
  • 亚马逊bsr排名的影响因素,如何提高BSR排名?-站斧浏览器