操作前景 列表页(A)->详情页(B)->选择服务页©,现在需要的是C->B之后,点返回按钮不能在出现C页面
现在(2019-4-27 00:00)的小程序页面栈可以有10层,但是页面销毁无法实现直接从栈中删除
- 曾经的解决方法(缺陷:如果小程序进入时只有1-2页,在点返回时会出现小程序进程退掉的BUG!!!?)
onUnload(){
let pages = getCurrentPages().length - 1;
console.log('需要销毁的页面:'+pages);
wx.navigateBack({
delta: pages
})
}
- 折中的方法
B进入C时使用的方法
wx.navigateTo({
url:'./xxxx'
})
C 返回B时使用的方法
wx.redirectTo({
url:'./XXX'
})
目前还存在的问题 A->B->C之后,C获取修改的新数据后将数据传递给B,在B页面点返回就会出现B的旧数据页面,(页面栈中出现的页面数据A->B->C->B(新),这时的B(新)点返回按钮(页面出现的顺序为C(已跳过)—>B(旧)->A))
页面栈传递数据
- 在url中传递数据(只能传递字段)
- 通过全局传递(可以传递对象)
在app.vue中设置
globalData={
xx:{}
}
a. 设置数据
// C页面设置数据
this.$parent.globalData.xx = {}
b. 读取数据
let xx = this.$parent.globalData.xx