问:如果我跳转需要传参该怎么做?
下面是解决方法:
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));
}
}
感谢观看,如果能帮到你,希望能给我点个赞哦!