小程序navigateTo怎么传JSON对象
小程序传过来的变量怎么显示[object object]
我最近和宿舍的小伙伴写了个叫健康饮食推荐的小程序app,这个navigateTo传对象真的是给我整的还挺烦的,直接传过去的结果老显示[object object],最后才知道原来不可以直接传JSON对象,得把JSON对象转化为JSON字符串才可以发送。
那么,怎么转化呢?比如我的项目是点击了一个菜品的图片后,就显示这个菜品的所有信息,所以我需要把这个菜品的信息(一个JSON对象)传到其他page上去,如下:
selectMenu(e){
// 获取被点击的菜品的id信息
let menu = e.currentTarget.dataset.menu;
wx.navigateTo({
url:'/pages/menuInfo/menuInfo?menu='+JSON.stringify(menu)
})
解释一下,这个e.currentTarget.dataset.menu来自于这里的data-menu,data-是一种默认的写法,后面得menu由开发者自己定义,后期在bindtap绑定的函数处只需要使用他的e.currentTarget.dataset.xxx(用户定义的名称)直接调用即可。
传过去之后呢?我们只需要再把它转化为JSON对象即可,代码如下:
Page({
data:{
menuInfo:{},
},
onLoad(opt) {
this.setData({
menuInfo:JSON.parse(opt.menu)
});
},
}
如此便能够实现JSON对象从JSON字符串复原为JSON对象了。