vue获取dom元素时,打印this.$refs可以看到想要获取的元素gridWrap,但是打印this.$refs.gridWrap确实undefined
代码:
<div ref="gridWrap">
let gridHeight=this.$refs.gridWrap;
console.log(this.$refs); //正常
console.log(this.$refs.gridWrap); //undefined
vue获取dom元素时,打印this.$refs可以看到想要获取的元素gridWrap,但是打印this.$refs.gridWrap确实undefined
代码:
<div ref="gridWrap">
let gridHeight=this.$refs.gridWrap;
console.log(this.$refs); //正常
console.log(this.$refs.gridWrap); //undefined
之前答案有问题,参考楼下的nextTick()
在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
// 修改数据
vm.msg = 'Hello'
// DOM 还没有更新
Vue.nextTick(function () {
// DOM 更新了
})
9 回答1.7k 阅读✓ 已解决
6 回答953 阅读
3 回答1.3k 阅读✓ 已解决
4 回答955 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
3 回答864 阅读
3 回答1.3k 阅读✓ 已解决
3 回答18.5k 阅读
4 回答4.9k 阅读✓ 已解决
5 回答13.6k 阅读
4 回答30.1k 阅读✓ 已解决
818 阅读
this.nextTick(() => { this.$refs.xxx })