Invalid prop: type check failed for prop "badgeList". Expected Object, got Array found in
时间: 2023-11-14 17:05:23 浏览: 193
解决vue props传Array/Object类型值,子组件报错的情况
5星 · 资源好评率100%
根据提供的引用内容,Invalid prop: type check failed for prop "badgeList". Expected Object, got Array的错误是由于父组件传递给子组件的badgeList的类型与子组件中props的定义不一致导致的。在父组件中传递的是一个数组,而子组件中props的定义是期望一个对象。为了解决这个问题,你可以修改子组件中props的定义,将type改为Array并设置默认值为一个空数组。
引用: 在 Vue 项目中通过 Props 属性向子组件传值的时候,很多小伙伴经常遇到Invalid prop: type check failed for prop “roleList”. Expected Object, got Array 的错误信息。
引用: 子组件:
export default {
props: {
roleList: {
type: Object, // 类型
default: null // 默认值
}
}
}
引用: 根据以上可以看到我们在父组件向子组件传递的roleList变量的类型是数组,而在子组件中roleList变量的类型是对象,所以出现了错误。在子组件中我们的期望是一个对象,而父组件中传递了一个数组,这就是导致错误的原因。修改Props属性的roleList变量的类型和默认值即可。
export default {
props: {
roleList: {
type: Array, // 类型
default: () => [] // 默认值
}
}
}
阅读全文