小程序

微信小程序之页面传递对象数组

2019-07-22  本文已影响1人  追逐繁星的阿忠

报错:

page lifeCycleMethod onLoad function SyntaxError: Unexpected end of JSON input

原因分析:

由于传递了大量数据到下一个界面导致;目前有本地存储,url传参,或者把参数设置成全局数据源。看个人所需来弄

参考地址:https://blog.csdn.net/Ruffaim/article/details/80841979

 //跳转到选商品的界面,这里需要把参数格式化传递
                    var info = encodeURIComponent(JSON.stringify(groupArr));
                    wx.redirectTo({
                        url: '/pages/goods_new/addCard/addCard?info=' + info,
                    })


//接收处理:
//let info = decodeURIComponent(options.info);
//let groupList = JSON.parse(info);
/**
     * 生命周期函数--监听页面加载
     * @zxyuns 这里做自由套餐的添加商品操作界面
     * 数据从上一个界面传递过来,这里要渲染并实现添加商品进购物车的逻辑
     */
    onLoad: function (options) {
        let self = this
        debugger
        let info = decodeURIComponent(options.info);
        let groupList = JSON.parse(info);

        console.log(groupList);
        debugger


        wx.hideShareMenu()
        /*//数据操作
        self.updatePageData()

        //购物车坐标
        this.busPos = {};
        let itemW = app.globalData.ww/5;
        this.busPos['x'] = itemW * 3 + itemW / 2 - 15;
        this.busPos['y'] = app.globalData.hh + app.tabBarH / 2;*/
    },
总结,向下一级页面传递对象或者数组的方式是相同的;

先将要传递的参数通过JSON.stringify(obj)方法转化为字符串,再在下级页面onLoad()的options中,将传递的参数再转化为对象或者数组,就可以正常使用了!!!

// 通过JSON.stringify(obj) 方法将对象转化为字符串进行传递
// 跳至结算页
/**
   * 向下一级页面传递对象参数
   */
    buyAction: function(e) {
      var model = JSON.stringify(e.currentTarget.dataset.obj);
      wx.navigateTo({
        url: '../detail/detail?model=' + model,
      })
  }
 
在下个页面接收
//在下个页面的onload中获取,
  onLoad: function (options) {
    var model = options.obj;
    console.log(options.obj)
    this.setData({
        model:model
    })
  },


/**
   * 向下一级页面传递对象参数
   */
    buyAction: function(e) {
      var model = JSON.stringify(selected_list);
      wx.navigateTo({
        url: '../detail/detail?model=' + model,
      })
  }
 
在下个页面接收
/**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 先将字符串转化为数组
    var list = JSON.parse(options.selected_list)
    console.log(list)
  },


上一篇下一篇

猜你喜欢

热点阅读