V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Gavinpeng
V2EX  ›  前端开发

小程序跳坑一点,关于从页面切换到 tabBar 页面不刷新的坑

  •  
  •   Gavinpeng · 2018-08-08 12:25:50 +08:00 · 5710 次点击
    这是一个创建于 2332 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前肯定有很多 V 友遇到这个问题, 例如从页面的 1 用 wx.switchTab()跳转到 tabBar 时,我们的数据没有更新, 或着说我们的需求是页面 1 发布了新内容,switchTab 页能及时刷新后台数据显示。

    接下来我们讲下 weChat 的跳转方式:

    小程序跳转的几种方式有 wx.navigateTo(), wx.redirectTo(), wx.reLaunch(), wx.switchTab()等。

    其他的 V 友有空自己试下,我们重点研究切换到 tabBar 的两种方式。 wx.switchTab()//跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面; wx.reLaunch()//关闭所有页面,打开到应用内的某个页面。

    我们回到根源,我们 wx.switchTab()跳转是不会触发 onLoad 事件从而数据不会更新, 而 wx.reLaunch()则是会触发 onLoad 事件, 这样解决了从页面切换到 tabBar 页面不会刷新的坑

    其实官方还提供了一个 API--wx.redirectTo(), 对于这个 API 官方的说法是(关闭当前页面,跳转到应用内的某个页面。) 我在 demo 测试的时候并未生效。可能是场景不同,有兴趣的 V 友可以去尝试下。

    细心的 V 友可能都会去试过了知道了这些特性,还请各位 V 友多多指教

    10 条回复    2018-08-08 14:51:25 +08:00
    SakuraKuma
        1
    SakuraKuma  
       2018-08-08 13:05:19 +08:00   ❤️ 1
    这并不是坑。
    onShow 了解一下
    TypeNANA
        2
    TypeNANA  
       2018-08-08 13:06:48 +08:00   ❤️ 1
    onShow 在页面切换到前端显示的时候触发,应该可以解决你的需求
    Gavinpeng
        3
    Gavinpeng  
    OP
       2018-08-08 14:20:41 +08:00
    @SakuraKuma 这的确是可以做刷新操作,但场景是从一个无 Bar 的页面,发布成功了,过去的时候是我说的不够明白我的锅
    Gavinpeng
        4
    Gavinpeng  
    OP
       2018-08-08 14:22:45 +08:00
    @TypeNANA 的确可以
    SingeeKing
        5
    SingeeKing  
       2018-08-08 14:25:04 +08:00   ❤️ 1
    redirectTo 只能 redirect 到非 TabBar 界面
    需要刷新数据请使用 onShow
    Gavinpeng
        6
    Gavinpeng  
    OP
       2018-08-08 14:32:11 +08:00
    @SingeeKing 明白感谢分享
    SakuraKuma
        7
    SakuraKuma  
       2018-08-08 14:34:13 +08:00   ❤️ 1
    @Gavinpeng #3 非 tabbar 页面会销毁。so~
    Gavinpeng
        8
    Gavinpeng  
    OP
       2018-08-08 14:41:27 +08:00
    @SakuraKuma onShow 里面做更新操作的话那我跳转的时候会触发 2 次更新请求
    SakuraKuma
        9
    SakuraKuma  
       2018-08-08 14:48:12 +08:00   ❤️ 1
    @Gavinpeng #8 ?? 2 次?
    你应该是把 onload 的更新数据移动去 onshow,而不是拷贝一份去 onshow。
    Gavinpeng
        10
    Gavinpeng  
    OP
       2018-08-08 14:51:25 +08:00
    @SakuraKuma 清楚明了感谢我 V 友
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5538 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 08:10 · PVG 16:10 · LAX 00:10 · JFK 03:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.