【问题】在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:55