父组件
<template>
<son ref="sonRef" />
<el-button @click='getSonData'>读取</el-button>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const sonRef = ref(null)
const getSonData = () => {
console.log(sonRef.value.data)
}
</scrip>
子组件
<template>
<div> {{ data }}</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const data = ref('abc')
defineExpose({
data
})
</script>
为什么执行getSonData的时候,无法获取到子组件的data?sonRef.value.data只能在onMounted内使用吗?不能在父组件的方法里执行?
这个正常情况下是不需要设置
nextTick 或者 onMounted
的,如果出现获取子组件属性undefined
的情况,是因为子组件未渲染完成;可尝试使用