Invalid prop: type check failed for prop "icon". Expected String
时间: 2023-12-02 20:42:13 浏览: 54
根据提供的引用内容,这是一个关于Vue.js中组件props类型检查失败的问题。具体来说,组件期望一个字符串类型的icon属性,但实际传入的是一个对象类型的"[object Object]",导致类型检查失败。
解决这个问题的方法是,检查传入组件的icon属性是否为字符串类型,如果不是,则需要将其转换为字符串类型再传入组件。可以使用toString()方法将对象类型转换为字符串类型。
以下是一个示例代码:
```javascript
props: {
icon: {
type: String,
required: true
}
},
mounted() {
// 检查icon属性是否为字符串类型
if (typeof this.icon !== 'string') {
// 将icon属性转换为字符串类型
this.icon = this.icon.toString();
}
}
```
相关问题
Invalid prop: type check failed for prop thDataArr. Expected , got Array
当在Vue项目中通过Props属性向子组件传递值时,如果传递的值的类型与子组件中定义的类型不匹配,就会出现Invalid prop: type check failed for prop的错误信息。在这个错误信息中,会提示期望的类型和实际传递的类型不匹配。例如,当传递一个数组给一个期望接收对象类型的props时,就会出现类似于Invalid prop: type check failed for prop thDataArr. Expected Object, got Array的错误信息。
解决这个问题的方法是,在父组件中传递给子组件的值的类型必须与子组件中定义的类型相匹配。如果子组件中定义的类型是对象,那么在父组件中传递给子组件的值也必须是一个对象。如果子组件中定义的类型是数组,那么在父组件中传递给子组件的值也必须是一个数组。
以下是一个解决这个问题的例子:
假设子组件中定义了一个props,期望接收一个对象类型的值:
```javascript
props: {
person: Object
}
```
在父组件中,如果传递一个数组给这个props,就会出现Invalid prop: type check failed for prop的错误信息:
```javascript
<template>
<div>
<child-component :person="['John', 'Doe']"></child-component>
</div>
</template>
```
正确的做法是传递一个对象给这个props:
```javascript
<template>
<div>
<child-component :person="{firstName: 'John', lastName: 'Doe'}"></child-component>
</div>
</template>
```
Invalid prop: type check failed for prop "icon". Expected Function, got String with value "".
根据提供的引用内容,你遇到了一个Vue开发中的错误:Invalid prop: type check failed for prop "icon". Expected Function, got String with value "".
这个错误通常是由于在使用第三方文件时,没有正确设置icon class导致的。解决方案是在使用svg的地方使用''拼接即可解决。
以下是一个示例代码,演示了如何解决这个问题:
```javascript
<template>
<div>
<svg :class="'icon ' + iconClass"></svg>
</div>
</template>
<script>
export default {
props: {
iconClass: {
type: String,
required: true
}
}
}
</script>
```
在上面的代码中,我们使用了`iconClass`作为props来接收icon的class。在使用svg的地方,我们使用`'icon ' + iconClass`来拼接class,确保正确设置了icon class。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)