收藏
回答

从二级页面返回一级页面时,如何保证二级页面data: {}中的数据不被清除?

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


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

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

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


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

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


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

回答关注问题邀请回答
收藏

3 个回答

  • var 友原
    var 友原
    2019-12-23

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

    2019-12-23
    有用
    回复 2
    • 零时零刻
      零时零刻
      2019-12-23
      tab页面切换后还是可以保留数据的吧!
      2019-12-23
      回复
    • 零时零刻
      零时零刻
      2019-12-23
      谢谢您的解答!
      2019-12-23
      回复
  • 🌞
    🌞
    2019-12-23

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

    2019-12-23
    有用
    回复 3
    • 零时零刻
      零时零刻
      2019-12-23
      重新从服务器拉取一遍数据会耗时。而且,我希望用户再次进入该页面的时候还是显示上次离开的位置上的内容。比如,上次展示的是第120~130号图片,再次进入的时候依然展示第120~130号图片(假设用户没有拍摄新的图片)。若是数据全部重新获取,达到这种效果逻辑上处理会麻烦一些。
      2019-12-23
      回复
    • 零时零刻
      零时零刻
      2019-12-23
      谢谢您的解答!
      2019-12-23
      回复
    • 🌞
      🌞
      2019-12-23回复零时零刻
      这个体验是好一点。社区已经做到了。你可以看下现在这个pc版本的社区。从消息里 点击跳转到问题详情页面,并且能定位到具体的某个回答
      2019-12-23
      回复
  • Mr.Zhao
    Mr.Zhao
    2019-12-23

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

    2019-12-23
    有用
    回复 3
    • 零时零刻
      零时零刻
      2019-12-23
      展示的是缩略图。以日期为标题,比如“12月23日”下展示当天所拍摄图片的缩略图。点击缩略图看大图
      2019-12-23
      回复
    • Mr.Zhao
      Mr.Zhao
      2019-12-23回复零时零刻
      你可以把两个页面合并, B页面加个手动返回按钮
      2019-12-23
      回复
    • 零时零刻
      零时零刻
      2019-12-23
      谢谢您的解答!看来,按照小程序现在的设计“相机”和“图库”用同一个页面是一种比较好的办法
      2019-12-23
      回复
登录 后发表内容
问题标签