wx.navigateBack(Object object) 返回多层时如何传值?
页面结构: A页面>B页面>C页面>D页面 现在A列表页面通过navigateTo跳转到B页面,同时监听一个事件,随着流程的执行,走到了D页面,提交返回到A页面并返回空值,唤醒A页面的监听,来删除列表中处理过的记录. A页面跳转逻辑: trackView: function (event) {
let that = this;
var id = event.currentTarget.dataset.id;
var index = event.currentTarget.dataset.index;
// 跳转到B并监听completionTask事件
wx.navigateTo({
url: "../B/B?id=" + id ,
events: {
completionTask:function(){
that.data.record.dataList.splice(index,1);
}
}
})
},
D页面返回逻辑: // 保存
formSubmit:function(e){
let that = this;
const eventChannel = this.getOpenerEventChannel();
// 向上跳转三层回到A页面,并发送completionTask事件
wx.navigateBack({
delta:3,
success:function(res){
eventChannel.emit('completionTask',{});
}
})
最后发现A页面并没有监听到completionTask事件. 看官方示例说是:获取被打开页面传送到当前页面的数据. (意思是只能url上写着的页面才能emit传值回来吗?.?) [图片] 问题:那我要返回多层并且想通过事件传值,能做到吗?.?还是只能直接获取到祖先页面的值,直接改?