Vue道具手表无法在类样式组件中工作



我有一个名为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) {
}

最新更新