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

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

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

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

传递的参数设置

javascript 复制代码
	
			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}`,
					});
				}
				
			},

接受参数设置

javascript 复制代码
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) {
				}
			}
相关推荐
我叫逢1 天前
一键去水印实战已上线!心得~
微信小程序·php·去水印
qq_12498707531 天前
基于微信小程序的电子元器件商城(源码+论文+部署+安装)
java·spring boot·spring·微信小程序·小程序·毕业设计
weixin_lynhgworld1 天前
科技赋能医疗,陪诊小程序开启就医新体验
科技·小程序
2501_916007471 天前
iOS 证书如何创建,从能生成到能长期使用
android·macos·ios·小程序·uni-app·cocoa·iphone
壹立科技1 天前
商超到家即时服务:软件基础功能打通“线上线下”关键链路
微信小程序·软件需求·外卖跑腿平台·外卖跑腿系统·商超配送
jqpwxt1 天前
启点创新游乐场多商户分账管理系统:驱动文旅商业生态革新的数字化引擎
大数据·人工智能·小程序
00后程序员张1 天前
AppStoreInfo.plist 在苹果上架流程中的生成方式和作用
android·小程序·https·uni-app·iphone·webview
计算机毕设指导61 天前
基于微信小程序+django连锁火锅智慧餐饮管理系统【源码文末联系】
java·后端·python·mysql·微信小程序·小程序·django
风月歌1 天前
php医院预约挂号系统小程序源代码(源码+文档+数据库)
数据库·微信小程序·小程序·毕业设计·php·源码
qq_12498707531 天前
基于微信小程序的校园资讯共享平台的设计与实现(源码+论文+部署+安装)
spring boot·后端·微信小程序·小程序·毕业设计