西洛西洛
西洛西洛
  • 发布:2020-07-02 17:44
  • 更新:2020-07-02 17:51
  • 阅读:729

在更新数据后导致界面更新,之后计算高度错误

分类:uni-app

【问题】在app中更新了数据,由数据循环出来的界面也更新,我需要计算这个更新后的界面高度,但是现在只能拿到更新前的高度。

【代码】

/* 更新数据 */  
this.cameraList.push(obj)  

/* 原先是直接用 this.scrollToBottom(),计算错误,查了vue api后改成这样,还是计算错误 */  
Vue.nextTick(()=>{  
    this.scrollToBottom()  
})  

/* 这里被注释掉的定时器,通过延迟100毫秒,则可以得到争取的数据 */  
scrollToBottom() {  
    /*  setTimeout(() => {  
           let view = uni.createSelectorQuery().in(this),  
         viewHeight = 0  
         view.select('.talk').fields({  
                    size: true,  
                    scrollOffset: true,  
                },(data) => {  
                    viewHeight = Math.floor(data.height)  
                    console.log(viewHeight)  
                }).exec()  
        },100)  */  

        let view = uni.createSelectorQuery().in(this),  
        viewHeight = 0  
            view.select('.talk').fields({  
            size: true,  
            scrollOffset: true,  
        },(data) => {  
            viewHeight = Math.floor(data.height)  
            console.log(viewHeight)  
        }).exec()  
    },  
})

图一:


图二:

图三:

现在就是这样,总不能用个定时器延迟吧,求助,十分感谢。

2020-07-02 17:44 负责人:无 分享
已邀请:
渡

- 性感前端在线炒粉一份8块

this.$nextTick 就解决了 不懂百度

  • 西洛西洛 (作者)

    感谢,我知道我错哪了。晕晕乎乎的诶。

    2020-07-02 17:55

该问题目前已经被锁定, 无法添加新回复