wx.navigateTo({
url: '../motto/motto',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function (data) {
console.log(data)
},
},
success:function (res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage',
{data: this.data.motto})
}
})
如果这么写,会遇到“Cannot read property 'data' of undefined ”的错误。
如果改成箭头函数的写法,就不会出错。
wx.navigateTo({
url: '../motto/motto',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function (data) {
console.log(data)
},
},
success: (res) => {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage',
{data: this.data.motto})
}
})
分析原因,箭头函数是ES6的写法,不同的写法,会导致“this”的指代层级不同,所以会找不到data属性。