这里大家可以清楚看到api中说到的如何传递参数,其实它这里指的参数仅仅是一些普通的数据类型,我们要传递的实体是object类型,那么我们需要先把实体转成string类型进行传递,在详情页面接受到在逆向转成实体,如下面这段示例:
首先在微信小程序中我们的所有函数当中都有一个事件处理函数,其参数名为event
在这当中,存放我们标签自定义属性的参数是currentTarget下的dataset,在我们标签中并没有设置自定义属性事,会发现dataset属性里面是空的
那么自定义属性是什么格式呢?请看下图:
上面就是自定义属性的格式 只需要在data-后面添加自定义的属性名即可,再次打印会发现dataset属性下多出了一个属性值
发现了吧,这个属性名就是刚才data-postId的值postId
那么我想从一级页面将某个参数传递到二级页面又该如何实现呢?很简单,只需要在URL当中添加点东西即可
//这里我们跳转详情界面
queryItemClick: function (e) {
var that = this
//拿到点击的index下标
var index = e.currentTarget.dataset.index
//将对象转为string
var queryBean = JSON.stringify(that.data.queryList[index])
wx.navigateTo({
url: '../queryResult/queryResult?postId=' + postId,
})
}
这里我们用JSON.stringify()函数将实体转成string类型进行传递,那么我们在看看接收参数:
/***重点内容*
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that=this
var postId = JSON.parse(options.postId);
that.setData({
postId: postId
})
//console.log(that.data.postId)
}
这里我们在生命周期函数onLoad中获取我们传递的实体转的字符串,然后用JSON.parse()转成实体,最后赋值给我们的全局变量。
如果我们想要传递Json对象 也可以通过这样的方式进行传递。