BonBonSlick
@BonBonSlick
Junior Web Developer Trainee

Как правильно передавать параметр для @change в Vue + Typescript?

<input type='range'
                                       min='3'
                                       max='21'
                                       :value='this.age'
                                       class='form-control-range'
                                       @change='this.setAge($event.target.value)'
                                >

vue.runtime.esm.js?2b0e:1897 TypeError: this.setAge is not a function
    at change (_template.html?e0fd:1)
    at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1863)
    at HTMLInputElement.invoker (vue.runtime.esm.js?2b0e:2188)
    at HTMLInputElement.original._wrapper (vue.runtime.esm.js?2b0e:6961)

@Template
@Component<ModalSelectAge>(
    {
        components: {
        },
        mixins:     [],
    }
)
export default class ModalSelectAge extends Vue implements IUser{
    @namespace(USER).Getter
    age!: () => number;
    @namespace(USER).Action
    setAge!: (age: number) => number;


Вот так вот будет работать, но IDE будет выдавать варнинг что метод не найден, никакого тайпхинтинга и автокомплита, статической валидации до компиляции
@change='setAge($event.target.value)' // Element setAge is not exported

без модификатора this будет вызван тот же метод, но уже с параметром из инпута.
  • Вопрос задан
  • 14 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы