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

2018-08-08 12:25:50 +08:00
 Gavinpeng

之前肯定有很多 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 友多多指教

5672 次点击
所在节点    前端开发
10 条回复
SakuraKuma
2018-08-08 13:05:19 +08:00
这并不是坑。
onShow 了解一下
TypeNANA
2018-08-08 13:06:48 +08:00
onShow 在页面切换到前端显示的时候触发,应该可以解决你的需求
Gavinpeng
2018-08-08 14:20:41 +08:00
@SakuraKuma 这的确是可以做刷新操作,但场景是从一个无 Bar 的页面,发布成功了,过去的时候是我说的不够明白我的锅
Gavinpeng
2018-08-08 14:22:45 +08:00
@TypeNANA 的确可以
SingeeKing
2018-08-08 14:25:04 +08:00
redirectTo 只能 redirect 到非 TabBar 界面
需要刷新数据请使用 onShow
Gavinpeng
2018-08-08 14:32:11 +08:00
@SingeeKing 明白感谢分享
SakuraKuma
2018-08-08 14:34:13 +08:00
@Gavinpeng #3 非 tabbar 页面会销毁。so~
Gavinpeng
2018-08-08 14:41:27 +08:00
@SakuraKuma onShow 里面做更新操作的话那我跳转的时候会触发 2 次更新请求
SakuraKuma
2018-08-08 14:48:12 +08:00
@Gavinpeng #8 ?? 2 次?
你应该是把 onload 的更新数据移动去 onshow,而不是拷贝一份去 onshow。
Gavinpeng
2018-08-08 14:51:25 +08:00
@SakuraKuma 清楚明了感谢我 V 友

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/477903

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX