从二级页面返回一级页面时,如何保证二级页面data: {}中的数据不被清除?
发布于 6 年前 作者 cuili 4026 次浏览 来自 官方Issues

大家好!在做一个类似相册的功能,简介如下:

1)一级页面名为“相机”,包含“拍照”和“图库”两个按钮。用户点击“拍照”按钮拍照(使用camera组件),然后点击“图库”按钮进入二级页面“图库”(使用API wx.navigateTo)查看图片;

2)进入二级页面“图库”后,用户可以查看刚拍摄的照片(页面上部)以及以前拍摄的照片(页面下部)。照片保存在云上。在这个过程中,为了使用户下次进入“图库”时,不需要再从服务器请求已经查看过的照片的地址,我把这些地址保存在“图库”页面的data: {}中;

3)在二级页面“图库”中,用户点击左上角小程序自带的返回按钮“<”返回一级页面“相机”。

调试发现,步骤3会将“图库”页面data: {}中的数据清除,从而再次进入“图库”时需要重新从服务器请求照片地址。

一种解决办法是:把已经查看过的照片地址信息保存在“图库”页面Page({})外的全局变量中,当用户进入“图库”页面时,通过setData把所有数据从全局变量倒到data: {}中。但这种做法每次需要把所有数据倒到data: {}中,然后重新渲染整个页面,代价依然比价大。

请问:是否有办法在从二级返回一级页面时保留二级页面data: {}中的数据?或者从二级页面返回一级页面时仅仅是隐藏二级页面?谢谢!

3 回复

一二级页面 是同一个页面。做显隐藏,从下往上滑动等效果。或者从右往左,并且自定义导航栏加个返回箭头 模拟跳转页面的操作。其实只是切换样式而已。看你了~ 我一般按正常的,重新请求接口拉一遍数据。

除非你两个页面做到同一个页面里通过样式隐藏,或者返回的时候把数据存到缓存或全局,不然页面一返回就已经卸载了数据怎么可能保留

A页面跳到B页面, B页面再跳到A页面, B页面已经卸载了, 你要隐藏B页面, 没有这个API. 数据量大的话,你可以分页,你既然是展示图片,手机屏小,也展示不了几个页面啊

回到顶部