【发布时间】:2021-12-30 15:00:19
【问题描述】:
我目前正在将一组道具“propSet”传递给一个子组件。计算道具并检测“编辑模式”布尔值并相应更改。
“propSet”定义了以下表单输入道具:color、filled、dense、outline、readonly、required和rules。
除了“规则”之外,所有道具都有效。每次子组件使用“propSet”的“editMode == true”配置时,我都会在控制台中收到以下错误消息:
[Vue 警告]:无效的道具:道具“规则”的类型检查失败。预期的 数组,得到对象
我尝试了很多事情,但特别是,我尝试过:
-
为规则数组的子组件添加类型验证
props: ['propSet'] //originalprops: { propSet: Array } //updated
-
利用 Object.entries() 将对象更改为数组
var rulesSet = Object.entries(this.rules)
-
更改规则 - 尝试以几种不同的方式配置规则
-
//original rules: { required: (v) => !!v || "This field is required", autoComplete: (v) => !!(v && v.length) || "This field is required", }, -
//updated rules: [{ required: (v) => !!v || "This field is required"},{ autoComplete: (v) => !!(v && v.length) || "This field is required", }],
-
我已经多次阅读 Props 的文档,但我还没有在那里看到我的问题的答案(除非我忽略了它)。我还阅读了我可以找到的与 Vuetify API 中的规则数组相关的文档。
我还阅读了很多与 Vue.js、props 和组件相关的 SO 问题。
我想我可能只是遗漏了一些非常明显的东西。
为了简洁起见,这是一个带有一组不同道具的代码笔,它演示了问题:
【问题讨论】:
标签: javascript vue.js vuetify.js