我试图在next应用程序中访问网格中div的高度。
<template>
<div class="grid grid-cols-3">
<client-only>
<Item
v-for="(
item, itemIndex
) in ItemsArray"
:key="`item-${itemIndex}`"
v-bind="item"
:ref="`item${itemIndex}`"
/>
</client-only>
</div>
</template>
<script>
export default {
mounted() {
this.itemHeight = this.$refs.item1.clientHeight
},
data() {
return {
itemHeight: 0,
}
}
}
</script>
但是我得到这个错误信息Cannot read properties of undefined (reading 'clientHeight')
。我不知道如何解决这个问题…
这是因为当您在v-for
Vue中添加ref
时,我们将创建refs
数组,而不是每个ref
本身。
我现在不在我的电脑上,但据我所记得的,你将不得不做这样的事情:
mounted() {
this.itemHeight = this.$refs.item1[0].clientHeight
},
如果这不是答案,试着调试console.log(this.$refs.item1)
,看看它是如何结构的。从那里你将能够了解你自己