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,诸如此类这里不在叙述,一般都是定义的函数没有写对类型或者赋值没写好类型导致