美文网首页小程序
微信小程序之页面传递对象数组

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

作者: 追逐繁星的阿忠 | 来源:发表于2019-07-22 17:20 被阅读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)
      },
    
    
    

    相关文章

      网友评论

        本文标题:微信小程序之页面传递对象数组

        本文链接:https://www.haomeiwen.com/subject/tqnwlctx.html