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

微信小程序传参过来了,但是数据没有获取到

使用本方法前,已经采用encodeURIComponent把拼接的参数编码之后,拼接在链接上,在接受的页面的onLoad生命周期,接收到参数之后,采用decodeURIComponent进行解码的操作,如果这个也不行,不是说不行,而是第一次跳转没有解析出来数据,也就是页面没有数据。需要第二次跳转才有数据。那么就是在微信小程序中,URL参数传递有以下限制:

  1. 长度限制:URL过长会被截断
  1. 编码问题:特殊字符可能导致解析失败
  1. 生命周期问题:页面加载时序可能影响数据获取

解决方案就是只传递关键的参数。或者跳转过去再做查询功能

传递的参数设置

	clickPatient(item) {if (this.patientInfo) {// 简化方案:只传递最关键的几个参数const params = {patientId: item.patientId || '',brName: item.brName || '',brSfzh: item.brSfzh || '',groupStatus: item.groupStatus || '0',companyCode: item.companyCode || '',rid: item.rid || ''};// 同时使用存储作为备份uni.setStorageSync('current_patient_backup', item);// 构建URL参数const urlParams = Object.keys(params).filter(key => params[key]) // 过滤掉空值.map(key => `${key}=${encodeURIComponent(params[key])}`).join('&');console.log('URL参数字符串:', urlParams);uni.navigateTo({url: `./patientDetail?${urlParams}`,});}},

接受参数设置

onLoad(options) {this.mrPatientInfo = this.$patientInfo.getCurrentPatient()let patientData = null;// 简化方案:直接从URL参数构建数据if (options.patientId) {patientData = {patientId: decodeURIComponent(options.patientId),brName: options.brName ? decodeURIComponent(options.brName) : '',brSfzh: options.brSfzh ? decodeURIComponent(options.brSfzh) : '',groupStatus: options.groupStatus || '0',companyCode: options.companyCode ? decodeURIComponent(options.companyCode) : '',rid: options.rid || ''};}// 备用方案:从存储获取if (!patientData || !patientData.patientId) {try {const backupData = uni.getStorageSync('current_patient_backup');if (backupData && backupData.patientId) {patientData = backupData;// 清理备份数据uni.removeStorageSync('current_patient_backup');}} catch (error) {}}

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

相关文章:

  • THUCNEWS数据集-文本分类
  • C++(运算符重载)
  • 2025虚幻引擎文件与文件夹命名规律
  • 代理 AI 时代的隐私重构:从边界控制到信任博弈
  • MySQL RC隔离级别惊现间隙锁:是bug吗?
  • 如何在中将网络改为桥接模式并配置固定IP地址
  • openLayers切换基于高德、天地图切换矢量、影像、地形图层
  • Zabbix监控系统安装部署(图文)
  • Linux简单了解以及VM虚拟机的安装使用(后端程序员)
  • 探秘阿里云EBS存储:云计算的存储基石
  • LINUX 619 NFS rsync
  • 深度学习-164-MCP技术之开发本地MCP服务器和异步客户端
  • LTC3130EMSE#TRPBF ADI电子元器件深度解析 物联网/工业传感器首选!
  • AWS GuardDuty邮件推送设置
  • 刘波卸任OPPO法定代表人、经理等职务,段要辉“接棒”
  • C++ 互斥量
  • 【Python】python系列之函数作用域
  • 微信小程序获取指定元素,滚动页面到指定位置
  • Maven镜像
  • ssh配置sftp,实现上传下载文件
  • uni-app总结4-项目配置+HBuilder插件使用+uni插件使用
  • 正则表达式一些例子
  • 视频续播功能实现 - 断点续看从前端到 Spring Boot 后端
  • 【Bug:docker】--Docker同时部署Dify和RAGFlow出现错误
  • web3 浏览器注入 (如 MetaMask)
  • 无人机电调技术要点与突破解析!
  • 插值与模板字符串
  • 宇鹿家政服务系统小程序ThinkPHP+UniApp
  • Spring Boot 工程启动以后,我希望将数据库中已有的固定内容,打入到 Redis 缓存中,请问如何处理?
  • WEB安全--WAF的绕过思路