typescript - Vue prop watch 在类样式组件中不起作用
问题描述
我有一个名为 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.
解决方案
似乎需要立即为真。在此更改后工作
@Watch('masterDatasourceId', { immediate: true })
masterDatasourceIdChanged(newVal: number) {
}
推荐阅读
- python - 当我尝试对包含数字数据的 csv 文件中的列进行排序时,它不会按照我期望的方式排序
- python - 在 Jupyter Notebooks 中从 Python 编辑 SQL 查询
- haskell - 为什么 Haskell 不能推断出这种类型
- apache-kafka - 低延迟分布式日志
- java - 图表着色所有可能的解决方案,特殊情况
- javascript - 如何防止 `single-value` div 中的文本溢出到 React-Select 中的 `indicators` div
- vuetify.js - 如何根据模型设置警报类型?
- ruby-on-rails - :selected 与 rails 表单中的 collection_select 一起使用时不起作用
- jquery - 如何查看从 web 方法返回的 json 字符串?
- javascript - (中间值).then 不是函数