原因:ref和v-if冲突,ref只有在组件渲染完成才注册引用信息,v-if首次为false没有把元素或子组件渲染,所以没有注册引用信息。
父组件
<uni-popup ref="popup" type="bottom" background-color="#fff">
<Address ref="getAddress" v-if="popupName === 'address'" 、@close="popup?.close()" />
<Service v-if="popupName === 'service'" @close="popup?.close()"/>
</uni-popup>
子组件
//获取地址列表
let getMemberList = async () => {
let res = await reqGetAddressList()
console.log(res)
getList.value = res.result
}
//这里因为使用了setup语法糖的形式,所以需要向外暴漏,父组件才可以进行使用
defineExpose({
getMemberList,
})
解决办法: