#typescript #vue.js #vue-component
#typescript #vue.js #vue-компонент
Вопрос:
У меня есть одно свойство с именем masterDatasourceId следующим образом, которое я передаю из родительского компонента в вызове ajax.
Но метод watch не вызывается. Ниже приведен мой код.
@Prop()
masterDatasourceId!: number;
@Watch('masterDatasourceId')
masterDatasourceIdChanged(newVal: number) {
// Even though masterDatasourceId changes, it is not coming up here.
}
Чего мне здесь не хватает? Я использую vue-компонент на основе typescript в стиле класса.
Я хотел получить его, используя следующий метод установки getter.
private _masterDatasourceId!: number;
public get masterDatasourceId(): number {
return this._masterDatasourceId;
}
@Prop()
public set masterDatasourceId(value: number) {
console.log('this I wanted to use as a watcher if possible...!!!')
this._masterDatasourceId=value;
}
Но это выдавало следующую ошибку во время выполнения.
The computed property "masterDatasourceId" is already defined as a prop.
Ответ №1:
Кажется, для этого требуется немедленное значение true. Работает после этого изменения
@Watch('masterDatasourceId', { immediate: true })
masterDatasourceIdChanged(newVal: number) {
}