仅作为标题,通过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
出问题了吗?