Vue Prop Decorator - 无效的道具类型检查

Posted

技术标签:

【中文标题】Vue Prop Decorator - 无效的道具类型检查【英文标题】:Vue Prop Decorator - Invalid prop type check 【发布时间】:2020-11-02 19:35:42 【问题描述】:

我正在使用 vue-prop-decorator 和 Quasar 框架。 我有一个组件,我在其中收到一个道具,定义如下:

<FabricanteComponente   
                :fabricante="fabricante"
/>

在组件本身中,prop 是用装饰器来描述的:

 @Prop(
        default: () => new Fabricante()
    )
    fabricante: Fabricante;

从 package.json 库的最新更新中,我开始收到以下错误:

[Vue 警告]:无效的道具:道具“fabricante”的类型检查失败。预期,得到对象

关于 package.json 上列出的相关依赖项我有

    "quasar": "^1.12.11",
    "vue-class-component": "^7.2.3",
    "vue-property-decorator": "^9.0.0"
    "@types/node": "^14.0.22",
    "@typescript-eslint/eslint-plugin": "^3.6.0",
    "@typescript-eslint/parser": "^3.6.0",
    "@vue/eslint-config-prettier": "^6.0.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.8.0",
    "eslint-config-prettier": "^6.11.0",
    "eslint-loader": "^4.0.2",
    "eslint-plugin-cypress": "^2.11.1",
    "eslint-plugin-vue": "^6.2.2",
    "ts-loader": "^8.0.0",
    "typescript": "^3.9.6",
    "vuex-module-decorators": "^0.17.0"

但我不知道错误在哪里。关于如何解决的任何想法?

【问题讨论】:

【参考方案1】:

今天我发现了问题。 Vue 本身并没有过多解释警告消息中发生的事情。

尽管如此,正如您在 Prop 定义中看到的那样,它需要一个 Fabricante 实例,而我只是从请求中发送了一个原始对象。创建一个类,如

.then((response)=> new Fabricante(response));

解决了。

【讨论】:

以上是关于Vue Prop Decorator - 无效的道具类型检查的主要内容,如果未能解决你的问题,请参考以下文章

[Vue + TS] Use Properties in Vue Components Using @Prop Decorator with TypeScript

vue-property-decorator

vue-property-decorator使用指南

vue-property-decorator用法介绍

vue/cli3 + typescript 中watch prop component computed 的用法

VueJS - 函数的结果作为 Prop 的默认值