收藏
回答

跳转到新页面接口获取的数据会闪一下?急急急急急!!

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

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

6 个回答

  • Smile
    Smile
    2019-02-01

    你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>

    2019-02-01
    有用 1
    回复 1
    • 逄金松
      逄金松
      2019-02-11

      感谢,确实是那里 每次进来都清空了,又重新赋值导致的闪动,不知道之前的人为什么这么写的,我一开始就把问题搞复杂了。


      2019-02-11
      回复
  • var 友原
    var 友原
    2019-01-29

    onshow判断现在的数据是否跟传过来的数据一样,一样就不setData,不一样再setData

    2019-01-29
    有用 1
    回复
  • 逄金松
    逄金松
    2019-01-29

    tabBar跳转不是只能触发一个onshow 函数么?


    2019-01-29
    有用
    回复
  • Jimmy
    Jimmy
    2019-01-29

    wx.showLoading()

    this.setData({

        xx: xx

    }, () => {

        wx.hideLoading()

    })

    2019-01-29
    有用
    回复 2
    • 逄金松
      逄金松
      2019-01-29

      页面上也显示loading了 不过下面的数据还是会闪一下,数据出来后 loading消失了 并没有什么不同啊?。。头像用的那个数据,也还是会闪一下。


      2019-01-29
      回复
    • Jimmy
      Jimmy
      2019-01-29回复逄金松

      设一些占位的初始值

      2019-01-29
      回复
  • 管凯旋
    管凯旋
    2019-01-29

    setData成功之后再显示页面,先loading

    2019-01-29
    有用
    回复 2
    • 逄金松
      逄金松
      2019-01-29

      。。。这个听起来 很不错 不过具体怎么弄呢?


      2019-01-29
      回复
    • 管凯旋
      管凯旋
      2019-01-29回复逄金松

      setData有成功回调的啊

      2019-01-29
      回复
  • A好先森🎩⁶⁶⁶ จุ๊บ
    A好先森🎩⁶⁶⁶ จุ๊บ
    2019-01-29

    渲染之前请求好

    2019-01-29
    有用
    回复 5
    • 逄金松
      逄金松
      2019-01-29

      渲染之前有什么周期函数么?

      具体是在哪个函数里面呢?


      2019-01-29
      回复
    • A好先森🎩⁶⁶⁶ จุ๊บ
      A好先森🎩⁶⁶⁶ จุ๊บ
      2019-01-29回复逄金松

      数据量不大的情况下, 你可以在切换的时候先请求数据,请求完进来数据就直接有了。

      或者楼下说的进来先显示loading、请求数据,你setData完成后hideloading

      this.setData({

          a:1,

      () => {

          console.log('赋值成功'

      }

      })



      2019-01-29
      回复
    • 逄金松
      逄金松
      2019-01-29回复A好先森🎩⁶⁶⁶ จุ๊บ

      页面上也显示loading了 不过下面的数据还是会闪一下,数据出来后 loading消失了 并没有什么不同啊?。。头像用的那个数据,也还是会闪一下。

      如楼上图的样子

      2019-01-29
      回复
    • A好先森🎩⁶⁶⁶ จุ๊บ
      A好先森🎩⁶⁶⁶ จุ๊บ
      2019-01-29回复逄金松

      自己写个loading压住

      2019-01-29
      回复
    • 逄金松
      逄金松
      2019-01-29回复A好先森🎩⁶⁶⁶ จุ๊บ

      意思就是写个不透明的 蒙版的loading?


      2019-01-29
      回复
登录 后发表内容