小程序传对象到下一个页面

小程序传参数到下一个页面,跟 get 请求一样在路径后面拼接参数;如果传的数据是对象的话,需要先将对象转成 json 字符串传过去;这里就会有个问题,那就是如果对象里面的属性过多导致参数过长,传递的时候微信小程序会将参数裁剪;这样在目标页接收数据的时候就会解析失败导致报错:

let payModel = {
      nonceStr: res.data.nonceStr,
      package: res.data.package,
      paySign: res.data.sign,
      timeStamp: res.data.timeStamp,
      signType: res.data.signType
    }
// 将对象转为json字符串
let jsonStr = JSON.stringify(payModel)

如果数据较少这样传递是没有问题的,如果参数过多,就需要用 encodeURIComponent 再转下

let jsonStr = encodeURIComponent(JSON.stringify(payModel))

// 跳转下一页并传参
wx.navigateTo({
   url: '/pages/subscribe_pay/subscribe_pay?payModel=' + jsonStr
})

目标页解析数据:

// 数据解析
 let model = JSON.parse(decodeURIComponent(options.payModel))

你可能感兴趣的:(小程序传对象到下一个页面)