我有一个名为masterDatasourceId的属性,如下所示,我在ajax调用中从父组件传递该属性。
但没有调用watch方法。以下是我的代码。
@Prop()
masterDatasourceId!: number;
@Watch('masterDatasourceId')
masterDatasourceIdChanged(newVal: number) {
// Even though masterDatasourceId changes, it is not coming up here.
}
我在这里缺了什么?我使用的是类风格的基于typescript的vue组件。
我想用下面的getter-setter方法得到它。
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.
似乎需要立即为true。更改后的工作
@Watch('masterDatasourceId', { immediate: true })
masterDatasourceIdChanged(newVal: number) {
}