Javascript Can';t在Vue props验证程序中使用导入的对象
我正在尝试为Vue组件的道具创建一个Javascript Can';t在Vue props验证程序中使用导入的对象,javascript,vue.js,vue-component,Javascript,Vue.js,Vue Component,我正在尝试为Vue组件的道具创建一个验证程序函数 validator函数需要导入的对象来执行验证,但是,当运行validator函数时,导入的对象是未定义的 安装组件后,将定义导入的对象(因此导入语法没有问题) 我的组件的Javascript代码如下所示: <script> import {EventTypes, PageTypes, logger} from "../core/EventLogger"; import FAQ from "./FAQ"; ex
验证程序函数
validator
函数需要导入的对象来执行验证,但是,当运行validator
函数时,导入的对象是未定义的
安装组件后,将定义导入的对象(因此导入语法没有问题)
我的组件的Javascript代码如下所示:
<script>
import {EventTypes, PageTypes, logger} from "../core/EventLogger";
import FAQ from "./FAQ";
export default {
name: "MobilityFAQs",
components: {
FAQ
},
props: {
faqs: {
required: true,
type: Array
},
pageType: {
required: true,
validator: value => {
return value in PageTypes
// PageTypes is undefined here.
}
}
},
mounted() {
console.log(PageTypes);
// PageTypes is defined here.
}
}
</script>
文档中有一条警告,您将无法按预期访问验证程序
函数中的实例属性,但这不是实例属性
请注意,在创建组件实例之前会验证道具,因此实例属性(例如数据、计算等)在默认函数或验证器函数中不可用
如何在验证程序
函数中使用导入的对象
更新以下雅各布回答:
我在
操作符中错误地使用了Javascript的
我更新的验证器
功能现在是:
validator: value => Object.values(PageTypes).includes(value)
(只是猜测..如果不正确,将删除)
页面类型实际上已定义,但您在
运算符中使用的。这就是验证失败的原因
页面类型中的值
检查is值
是否是页面类型
中的键/属性。它与PageTypes.hasOwnProperty(值)
相同
您实际想要做的可能是检查对象值,而不是对象键。如果是这样,请使用Object.values(PageTypes).includes(value)
(只是一个猜测..如果不正确,将删除)
页面类型实际上已定义,但您在
运算符中使用的。这就是验证失败的原因
页面类型中的值
检查is值
是否是页面类型
中的键/属性。它与PageTypes.hasOwnProperty(值)
相同
您实际想要做的可能是检查对象值,而不是对象键。如果是这样,请使用Object.values(PageTypes).includes(value)
nicespot-我太习惯Python了!我已经用更改更新了我的答案。谢谢你,好地方-我太习惯Python了!我已经用更改更新了我的答案。谢谢雅各布
validator: value => Object.values(PageTypes).includes(value)