在计算better-scroll右侧列表滚动高度的时候,发现列表的length为0
原因:上网查阅发现问题可能是由于mounted 不会承诺所有的子组件也都一起被挂载。这个时候dom元素还有没挂载完毕。如果你希望等到整个视图都渲染完毕,可以用 vm.$nextTick 替换掉 mounted:
mounted () {
this.$nextTick(() => {
this._initScroll(), this._calculateHeight();
}); },
但是不清楚为什么使用了这个方法后获取的length依旧为0,
就在_calculateHeight()方法上加了个定时器,等到完全渲染完成时再获取高度(这种问题可能会出现bug,不知道页面什么时候渲染完毕):
_calculateHeight () {
setTimeout(() => {
let foodList = this.$refs.right.getElementsByClassName('food-list-hook');
let height = 0;
this.listHeight.push(height);
for (var i = 0; i < foodList.length; i++) {
let item = foodList[i];
height += item.clientHeight;
this.listHeight.push(height);
}
}, 200)
},