发布时间:2023-04-23 文章分类:WEB开发, 电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

🔥🔥🔥欢迎关注csdn前端领域博主: 前端小王hs

🔥🔥🔥email: 337674757@qq.com

🔥🔥🔥前端交流群: 598778642

vue3报错:runtime-core.esm-bundler.js:38 [Vue warn]: Invalid prop: type check failed for prop “modelValue”. Expected Boolean, got Object
at

警告的大意是绑定的函数期待得到的是布尔值,但得到的是一个对象

警告原因就是v-model绑定的函数获得的值是一个对象,这个问题一般出现在bus传值或者其他传值方式

逻辑分析:
①el-dialog(不一定是dialog组件)绑定了一个函数
②在script中对函数名进行了定义
③通过bus对这个函数名进行传值
问题出在:
④需要把函数名的.value值设为true
如果没有设置ture,而是把子组件传过来的值(obj类型)赋值给函数名的.vlaue,则会报错
伪代码示意如下:

<tempalte>
//绑定函数
 <el-dialog :function='function' />
</template>
<script setup>
//接受子组件的传值
//问题出在是function.value = e 则报错
bus.on('function', (e) => {
		function.value = true
		)}
//对函数进行定义
const function = ref()
</script>	

搜过其他同类的问题,但这个 Expected Boolean, got Object 问题应该还是算比较新的问题

其他同类的是 期待获得object类型,但得到的是string,诸如此类这里不在叙述,一般都是定义的函数没有写对类型或者赋值没写好类型导致