[微信小程序]跳转到新页面接口获取的数据会闪一下?急急急急急!! [别急快到了]

本项目为商城项目,有个人设置页,用tabBar进行跳转,如下图:红框中的数据为onShow方法中拉接口获取,不过每次从其它tab跳过来都会刷新数据,页面红框中的数据就会闪动一下,这样体验很不好,看到很多商城小程序都不会闪动,不知道怎么办了 求助!因为这里的数据需要动态更新的 比如在商品页面添加了一个商品到付款里面那么跳转到这个页面待付款就会多一个,不过其它地方的数据也会刷新一下 很不爽,怎么弄?

  • 你onShow每次都把member_info清空那肯定啊,如果不想这样,你先判断是否登录了再判断member_info是否需要清空 wx.showLoading(); this.get_memberInfo(); if (!app.globalData.user.is_login) {     this.setData({         member_info: {}     }); } 无论登陆不登陆你圈起来的数据给默认值,比如<view>{{member_info.money || 0}}</view> , 说的貌似很有深意,你能一条一条说么?
    • 感谢,确实是那里 每次进来都清空了,又重新赋值导致的闪动,不知道之前的人为什么这么写的,我一开始就把问题搞复杂了。 , 满大街不都是人,有什么好稀奇的。
  • onshow判断现在的数据是否跟传过来的数据一样,一样就不setData,不一样再setData, 说了那么多,重点是什么?
  • tabBar跳转不是只能触发一个onshow 函数么? , 懂不了乃们成年人的世届戒界
  • wx.showLoading() this.setData({     xx: xx }, () => {     wx.hideLoading() }) , 人家听不懂你在说什么哦
    • 页面上也显示loading了 不过下面的数据还是会闪一下,数据出来后 loading消失了 并没有什么不同啊?。。头像用的那个数据,也还是会闪一下。 , 我追
    • 设一些占位的初始值, 坦白说,我没看懂什么意思。
  • setData成功之后再显示页面,先loading, 收到,明白。
    • 。。。这个听起来 很不错 不过具体怎么弄呢? , 你说的我都没有听懂。
    • setData有成功回调的啊, 也有失败的。
  • 渲染之前请求好, 完全看不懂你在说什么。
    • 渲染之前有什么周期函数么? 具体是在哪个函数里面呢? , 你觉得呢
    • 数据量不大的情况下, 你可以在切换的时候先请求数据,请求完进来数据就直接有了。 或者楼下说的进来先显示loading、请求数据,你setData完成后hideloading this.setData({     a:1, () => {     console.log('赋值成功')  } }) , 说的貌似很有深意,你能一条一条说么?
    • 页面上也显示loading了 不过下面的数据还是会闪一下,数据出来后 loading消失了 并没有什么不同啊?。。头像用的那个数据,也还是会闪一下。 如楼上图的样子 , 你的观点呢