微信小程序 - wx.navigateTo({}) 跳转页面携带 对象/数组/复杂数据 参数(携带一个复杂对象数据参数)

前言

你可以理解为:携带一个 复杂对象数据 参数,实现跳转页接收。

在微信小程序,使用 wx.navigateTo({}) API 携带参数跳转页面很常见,但是今天有一个需求,需要携带一个复杂的数据,它是一个数组,里面嵌套了 N 个对象,对象里还有数组。

解决方案

使用 JSON 对象的两个方法:

  1. JSON.strtingify:将 object 转化为字符串
  2. JSON.parse:将字符串解析为 object
/*
* [发送参数]
* 将对象解析为字符串
*/

wx.navigateTo({
    
    
     url: '/pages/index?data=' + JSON.stringify(object),
})
/*
* [接收参数]
* 将字符串解析为对象
*/

this.setData({
    
    
	data: JSON.parse(options.data)
})

注意事项

您需要格外注意 第一条 ,如果有图像链接,那么必定触发了,请按照教程解决。

  1. 如果转化的字符串中 有 "?","&"或"=" 等这样的符号,则只会传递符号以前的字符串,符号后面数据会被丢失,这个问题我猜想可能是小程序内部的路由处理 对这些符号敏感吧。所以有时候这里可以先用 encodeURIComponent() 进行转码,在目标页面再用 decodeURIComponent() 解码,这样就可以避免数据丢失了。如果你看不懂,请访问 详细代码教程!
  2. 不要将参数 object 先使用变量存起来然后进行传递,这样写接收的时候可能无法解析成功。

猜你喜欢

转载自blog.csdn.net/weixin_44198965/article/details/108872852