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

网友投稿 524 2022-09-22

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

报错:

page lifeCycleMethod onLoad function SyntaxError: Unexpected end of JSON input

原因分析:

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

//跳转到选商品的界面,这里需要把参数格式化传递 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) },

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:嫁接视频号,微信将迎来商业发展“第二春”!
下一篇:微信小程序 通过data-XXX=‘{{}}’方式传值 怎样同时传两个
相关文章

 发表评论

暂时没有评论,来抢沙发吧~