Nuxt props配置报错:instanceof右侧运算对象不可调用如何解决
问题原因
- Vue/Nuxt 的 Props 类型校验规则中,若允许 prop 接受多种类型,
type字段需要传入构造函数组成的数组,而非对象。 - 你编写的
type: {Array, Object}是ES6对象简写语法,等价于type: {Array: Array, Object: Object},Vue在校验类型时会尝试将type的值作为构造函数执行instanceof判断,对象无法被调用,因此抛出该报错。 - 同时你还存在不符合规范的配置:当prop类型为
Array或Object时,默认值必须通过工厂函数返回,否则会出现多个组件实例共享同一份引用数据的异常。
修复方案
将props配置修改为如下格式即可,若业务中items默认值需要为对象,调整工厂函数的返回值即可:
<script> export default { props: { items: { // 多类型用数组包裹对应构造函数 type: [Array, Object], // 数组/对象类型的默认值通过工厂函数返回 default: () => [] } } } </script>
内容的提问来源于stack exchange,提问作者user15242898
相关产品推荐
相关产品推荐

