刷新页面后,通过reflect-metadata的vue-property-decorator @Prop验证程序不起作用

时间:2019-04-17 04:31:42

标签: typescript vue.js reflect-metadata

仅作为标题,通过reflect-metadata的@Prop验证器在刷新页面后不起作用。

如文档所述,我导入reflect-metadata并将emitDecoratorMetadata转到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出问题了吗?

0 个答案:

没有答案