1

正如标题一样,通过反射元数据的@Prop 验证器在刷新页面后不起作用。

正如文档所说,我导入reflect-metadataemitDecoratorMetadata转向true.

我的代码是这样的:

<template>
    <div>
        <HelloWorld :msg="123"></HelloWorld>
    </div>
</template>
import {Vue, Component, Prop} from 'vue-property-decorator';

@Component({})
export default class HelloWorld extends Vue {
    @Prop() readonly msg!: string;
}
// [Vue warn]: Invalid prop: type check failed for prop "msg". 
// Expected String with value "123", got Number with value 123.

当我第一次进入页面时,它肯定会起作用。但是当我刷新页面时,它不起作用(它不验证 prop 的类型,包括 dev env 和 prod env)。而且我确定我只导入reflect-metadata一次,并且我已经更新reflect-metadata到最新版本 0.1.13(因为我听说旧版本有一些“意外行为”)。

我尝试导入reflect-metadata依赖项(抱歉修改了依赖项的代码),这一次它可以工作,即使在刷新后也是如此。为什么?

而且我发现了一些奇怪的东西......刷新页面后,该Reflect.getMetadata功能会消失。这有什么问题Reflect吗?

4

0 回答 0