道具:
props: {
delay: Number,
}
观察者:
watch: {
q: _.debounce(function() {
console.log(this.delay); // 500; always works fine, this.delay is here
}, this.delay) // never works;
},
如果硬编码延迟(设置为 500
而不是 this.delay
- 它有效;否则 - 函数不去抖动)。
我做错了什么?谢谢。
您将
无法在此处完成设置delay
。 this
不是该范围内的组件。您可以在生命周期钩子中使用$watch
:
created () {
this.debounceUnwatch = this.$watch('q', _.debounce(
this.someMethod,
this.delay
))
},
destroyed () {
// Removed the watcher.
this.debounceUnwatch()
},
欲了解更多信息:https://v2.vuejs.org/v2/api/#vm-watch
编辑
这也行不通。它似乎真的应该有。我认为这里需要做的是,您需要对正在更新q
而不是q
本身进行抖动。