<template>
<el-button @click="handleClick" type="primary">
<slot></slot>
</el-button>
<el-dialog :title="title" v-model="visiable">111</el-dialog>
</template>
<script lang="ts" setup>
import {watch} from 'vue'
let props = defineProps<{
// 弹出框的标题
title: string,
// 控制弹出框的显示与隐藏
visiable: boolean
}>();
let emits = defineEmits(['update:visiable'])
let handleClick = () => {
emits('update:visiable',!props.visiable)
};
// 监听visible的变化
watch(() =>props.visiable,val => {
emits('update:visiable',val)
console.log(val)
})
</script>
<style>
</style>
在el-dialog组件上的v-model绑定的值是props中父组件传过来的,报以下错误:
解决方案:
prop 是单向数据流,这里只能用:model-value,不能用v-model