#typescript #vue.js #reflect-metadata
#typescript #vue.js #отражение метаданных
Вопрос:
Как и заголовок, @Prop validator через reflect-metadata не работает после обновления страницы.
Как сказано в документе, я импортирую 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
?
Комментарии:
1. Попробуйте с помощью библиотеки ‘vue-property-decorator’ импортировать { Prop} из ‘vue-property-decorator’
2. Спасибо … но я импортировал библиотеку.