wx.navigateBack
目前只能控制返回几层,因为小程序最大支持打开10级页面,实际有类似以下场景(目前全部使用 navigateTo 打开):
用户A主页 -> 评价详情1 -> (点击头像进入)用户A主页 -> 评价详情2 ……
如果能支持 navigateBack 传递自定义参数,就不用一直新开页面,可以自行判断使用返回方法,在 onLoad 或 onShow 生命周期获取新的参数,这将会大大提升小程序页面跳转的体验。理论上体验可以做到和APP一样支持打开无限层级页面,又不会因为打开太多页面导致内存暴增。希望官方评估考虑。
----------------------
突然发现有不少人关心这个问题,我就挖坟补充一下:
我们自己实现了近似小程序页面生命周期的方法,从在跳转动作执行时,先从页面栈中找到目标页面,执行这个方法并传递参数,然后再 back 相对应的层级,用法和 onShow 等等一样
onNavigateBack(options) { }
因为我们的小程序是有一层自己封装的路由,所以这个事情在统一路由层面就完成了,业务开发者不用去关心怎么实现的,还是很通用的。
这确实是个问题,并且有现实需要。比如编辑页创建新的数据需要加载到返回页面,如果直接带着数据回去,可以减少一次数据库读取。使用prevPage变量,进行上一页setData可解决。
let tempPage = getCurrentPages(); // 当前页变量
let prevPage = tempPage[tempPage.length - 2]; // 上一页变量
// 这里给要打开的页面传递数据.
this.data.PMCOIList.unshift(funcPra.PMCOI) //新生成的数据,加到数据头 传给前一页
prevPage.setData({
PMCOIList: this.data.PMCOIList, //对前一页数据渲染
})
wx.navigateBack({ //返回前一页
delta: 1})
你们需要这个:http://lblblib.gitee.io/tarojs-router-next/guide/quike/sync-router
两种方式都写了一下
https://www.mscoder.cn/blog/posts/8670994060c055c20016b1ac1aeee0ed
这个好,现在反会上一级的时候带参数只能在缓存或者全局变量里面做判断和传递,多加一个返回上一层可触发的方法吧,还可以接受参数
解决方案:存入storsage ,在返回页面后show的时候去找 看storsage里面是否有你要的数据
即使官方实现了,如果用户点右下角的按钮返回,貌似小程序操作不到它。会造成wx.navigateBack()携参返回和点右下角按钮返回效果不一致的现象。
有详细且有没那么复杂的解决方案吗
https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html
基础库 2.7.3 新增属性 events
wx.navigateTo({ url: 'test?id=1', events: { // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 acceptDataFromOpenedPage: function(data) { console.log(data) }, someEvent: function(data) { console.log(data) } ... }, success: function(res) { // 通过eventChannel向被打开页面传送数据 res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' }) } }) //test.js Page({ onLoad: function(option){ console.log(option.query) const eventChannel = this.getOpenerEventChannel() eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'}); eventChannel.emit('someEvent', {data: 'test'}); // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据 eventChannel.on('acceptDataFromOpenerPage', function(data) { console.log(data) }) } })
https://blog.csdn.net/caoyan0829/article/details/79818570