Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t在Vue props验证程序中使用导入的对象_Javascript_Vue.js_Vue Component - Fatal编程技术网

Javascript Can';t在Vue props验证程序中使用导入的对象

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

我正在尝试为Vue组件的道具创建一个
验证程序
函数

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)