收藏
回答

小程序onLoad与加载第一个页面顺序问题?

场景是:

我在小程序的第一个页面中做了判断,默认JS中data里A值为false。

进入页面的onload时取数据库,如果有值,则A==true,显示第一部分内容M,如果无值,则A==false,显示另一部分内容N。 M和N都是第一个页面里的VIEW内容。

现在遇到的问题是,小程序启动时,每次进入第一页面前,此时因为A默认==False,onload取数据还没返回,这样就会显示N的内容,然后数据库返回了发现有值,就会显示M的内容。这样就导致显示M内容前,N的内容闪现了一下才隐掉。

请问大家这种情况都是怎么处理的?


伪代码:

Page({
  data: {    
    A:false   
  },
 
  onLoad: function () {
	var t = this    
	t.getDB()
  },   
  getDB:function(){
    var t = this     
     wx.cloud.callFunction({
      name: 'test',
      data: {       
      },
      success: function(res) {        
          t.setData({    
            A: true
          })
        }
      },
      fail: console.error
    })
  }  
  
})


第一页面:

if(A){
	显示<view>M</view>
}else{
	显示<view>N</view>
}

现在进入第一个页面的时候,N的内容先闪了下才展示了M。
最后一次编辑于  2020-10-24
回答关注问题邀请回答
收藏

1 个回答

  • James¹⁰¹⁴
    James¹⁰¹⁴
    2020-10-24
    一开始都不显示,数据返回了该显示的元素再显示。
    2020-10-24
    有用
    回复 2
    • 吃西瓜不给钱
      吃西瓜不给钱
      2020-10-26
      如果一开始都不显示,会有一阵空白啊
      2020-10-26
      回复
    • James¹⁰¹⁴
      James¹⁰¹⁴
      2020-10-26回复吃西瓜不给钱
      你可以加个loading,或者做个默认底板之类的。
      2020-10-26
      回复
登录 后发表内容
问题标签