Vue Prop Watch在类样式的组件中不起作用

时间:2020-08-30 14:41:50

标签: typescript vue.js vue-component

我有一个名为masterDatasourceId的属性,如下所示,我是通过ajax调用中的父组件传递的。

但是未调用watch方法。以下是我的代码。

  @Prop()
  masterDatasourceId!: number;

  @Watch('masterDatasourceId')
  masterDatasourceIdChanged(newVal: number) {
    // Even though masterDatasourceId changes, it is not coming up here.
  }

我在这里想念什么?我正在使用基于类样式的打字稿的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.

1 个答案:

答案 0 :(得分:0)

似乎这需要立即为真。更改后即可工作

@Watch('masterDatasourceId', { immediate: true })
  masterDatasourceIdChanged(newVal: number) {
}