正如标题一样,通过反射元数据的@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
吗?