微信小程序页面之间传递复杂参数

// 页面A
// 构造要传递的复杂参数
var complexParam = {
  name: "John",
  age: 25,
  hobbies: ["reading", "coding", "traveling"],
  location: {
    city: "Beijing",
    country: "China"
  }
};

// 将复杂参数转为JSON字符串
var paramStr = JSON.stringify(complexParam);

// 跳转到页面B,并传递参数
wx.navigateTo({
  url: '/pages/b/b?param=' + encodeURIComponent(paramStr)
});
// 页面B
// 在页面B的onLoad函数中获取传递的参数
onLoad: function(options) {
  // 获取参数字符串
  var paramStr = options.param;

  // 将参数字符串解析为JSON对象
  var complexParam = JSON.parse(decodeURIComponent(paramStr));

  console.log(complexParam);
}

在页面A中,我们构造了一个复杂的参数complexParam,然后使用JSON.stringify方法将其转为JSON字符串。在跳转时,我们通过url参数将JSON字符串传递给页面B,同时使用encodeURIComponent对参数进行编码,以确保参数中的特殊字符不会被URL编码破坏。

在页面B中,我们通过options参数获取到传递的参数字符串paramStr,然后使用JSON.parse方法将其解析为JSON对象。最后,我们可以在控制台中打印出复杂参数的内容。

请注意,微信小程序对url参数的长度有限制,如果参数过长可能会被截断。如果你的参数非常复杂或者超过限制长度,可以考虑使用全局数据进行共享,或者使用缓存等其他方式来传递和获取复杂参数。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值