vue-property-decorator @Prop validator через reflect-metadata не работает после обновления страницы

#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. Спасибо … но я импортировал библиотеку.