因为uniapp用this.$nextTick存在兼容性问题,可以用传统的setTimeout

 

setTimeout(async ()=> {
    //获取到当前swiper的高
    await this.getCurrentSwiperHeight()
    //放入缓存
    this.swiperHeightData[this.currentIndex]=this.currentSwiperHeight
  },0)
getCurrentSwiperHeight() {
  return new Promise((resolve,reject) => {
    //累加和
    let sum = 0
    // 1、拿到所有的Item,异步
    const querry = uni.createSelectorQuery().in(this)
    query.selectAll(`.hot-list-item-${this.currentIndex}`)
    .boundingClientRect((res) => {
        //2、拿到所有item的高度
         //3、把所有的高度累加
        res.forEach(item => {
           sum += item.height
        })
        resolve(sum)
    })
    .exec()
  })
}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐