uniapp怎么传跳转页面并传递对象参数

在uni-app中,实现页面跳转并传递对象参数,可以通过以下方法:

1. 在跳转前,将需要传递的对象参数转为JSON字符串,然后用encodeURIComponent进行编码,拼接在url后面。
// 要跳转的页面路径
const url = '/pages/detail/detail';

// 要传递的对象参数
const obj = {
  id: 123,
  name: 'test'
};

// 将对象参数转为JSON字符串,并使用encodeURIComponent编码
const params = encodeURIComponent(JSON.stringify(obj));

// 跳转页面并传递对象参数
uni.navigateTo({
  url: `${url}?params=${params}`
});


2. 在跳转后的页面,通过`onLoad`事件获取传递的对象参数,并使用decodeURIComponent解码,然后转为对象。

// detail.vue
export default {
  data() {
    return {
      obj: null
    }
  },
  onLoad(options) {
    // 获取传递的对象参数,使用decodeURIComponent解码,并转为对象
    if ('params' in options) {
      this.obj = JSON.parse(decodeURIComponent(options.params));
    }
  }
}


这样就可以实现在uni-app中跳转页面并传递对象参数的需求。
  • 16
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好!关于uniapp页面跳转传递多个对象,可以使用以下方式: 1. 将多个对象打包成一个对象,再进行传递。 例如: ``` let obj1 = { name: 'Jack' }; let obj2 = { age: 25 }; let obj3 = { gender: 'male' }; let obj = { obj1: obj1, obj2: obj2, obj3: obj3 }; // 页面跳转并传递对象 uni.navigateTo({ url: '/pages/page2/page2?obj=' + JSON.stringify(obj) }); ``` 在被跳转的页面中,可以通过 `onLoad` 方法的参数 `options` 获取传递对象: ``` onLoad(options) { let obj = JSON.parse(options.obj); console.log(obj.obj1.name); // Jack console.log(obj.obj2.age); // 25 console.log(obj.obj3.gender); // male } ``` 2. 使用 URLSearchParams 对象传递多个对象。 例如: ``` let obj1 = { name: 'Jack' }; let obj2 = { age: 25 }; let obj3 = { gender: 'male' }; // 创建 URLSearchParams 对象 let params = new URLSearchParams(); params.append('obj1', JSON.stringify(obj1)); params.append('obj2', JSON.stringify(obj2)); params.append('obj3', JSON.stringify(obj3)); // 页面跳转并传递参数 uni.navigateTo({ url: `/pages/page2/page2?${params.toString()}` }); ``` 在被跳转的页面中,可以通过 `onLoad` 方法的参数 `options` 和 `URLSearchParams` 对象获取传递参数: ``` onLoad(options) { let params = new URLSearchParams(options); console.log(JSON.parse(params.get('obj1')).name); // Jack console.log(JSON.parse(params.get('obj2')).age); // 25 console.log(JSON.parse(params.get('obj3')).gender); // male } ``` 希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值