小程序onLoad与加载第一个页面顺序问题?
发布于 5 年前 作者 xiulantan 3643 次浏览 来自 问答

场景是:

我在小程序的第一个页面中做了判断,默认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。
1 回复

一开始都不显示,数据返回了该显示的元素再显示。

回到顶部