uniapp路由跳转传参

问:如果我跳转需要传参该怎么做?
下面是解决方法:

在这里插入图片描述

processInstanceId就是我要跳转携带的参数,包括我的type值(设置type值是为了防止页面非法进入)

uni.navigateTo({
	url: '/pages/capital/reserveFund?type=rejectDeal&processInstanceId=' + item.processInstanceId
});

这个是uniapp最常用的
在这里插入图片描述

onLoad(option) {
	//判断是否是我要的,如果不是不让他操作
	if (option.type == 'rejectDeal') {
		this.processInstanceId = option.processInstanceId;
		this.taskId = option.taskId;
		this.showProcessInstanceForm();
	}
},
问:如果路由想携带对象怎么办?直接这样吗?
uni.navigateTo({ url: '/pages/home/commonServices/journalCao?type=update&data=' + item });

那么接收的数据是这样的option.data ===》 [object Object]

下面是解决方法:

所以应该利用encodeURIComponent和JSON.stringify(下面有解释)

encodeURIComponent() 函数:可把字符串作为 URI 组件进行编码。
JSON.stringify() 方法:用于将 JavaScript 值转换为 JSON 字符串。

uni.navigateTo({ url: '/pages/home/commonServices/journalCao?type=update&data=' 
+ encodeURIComponent(JSON.stringify(item))

接收的时候就应该利用decodeURIComponent和JSON.parse
decodeURIComponent() 函数:可对 encodeURIComponent() 函数编码的 URI 进行解码。
使用 JSON.parse() 方法:将数据转换为 JavaScript 对象。

onLoad(option) {
	if (option.type == 'outStorage') {
		//接收传递过来的对象
		const data = JSON.parse(decodeURIComponent(option.data));
	}
}

感谢观看,如果能帮到你,希望能给我点个赞哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值