需要在页面间传递信息,使用:
发送页面源码:
let index = e.currentTarget.dataset.index
console.log('jump to season:', index)
wx.navigateTo({url: '../season/season', success:function(res){res.eventChannel.emit('sendSeasonNo', index)}})
接收页面源码:
var tmp
eventChannel.on('sendSeasonNo', function(data){tmp=data})
开发工具调试正常,但是真机调试,在执行完eventChannel.on之后,tmp还是undefined。
谢邀,解决了就好
我和你遇到的问题一模一样,在接受页面的 onshow 中,代码执行的顺序除了问题,先执行了后面的业务逻辑,然后才执行获取上一页传过来的数据这个动作,导致后面的业务逻辑代码获取不到数据,然后报错。不知道你最后怎么解决的
new Promise((resolve, reject) => {
eventChannel.on('sendSeasonNo', function (data) {
tmp = data
resolve(tmp)
})
}).then((res) => {
this.setData({ seasonNo: tmp })
this.setData({ episodeList: this.data.playList[tmp].episodeList })
console.log('index:', tmp, this.data.seasonNo)
wx.setNavigationBarTitle({ title: this.data.playList[tmp].seasonName })
})
emit 接收的参数是一个对象
我是看你的 emit 第二个参数index 应该 emit("事件名称",{ data:index}), 接收 on("事件名称",function(data){console.log("data")})