道具:
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
- 它可以正常工作;否则 - 功能不是去抖动。)
我做错了什么?感谢。
答案 0 :(得分:2)
您无法在那里完成delay
的设置。 this
不是该范围内的组件。您可以在生命周期钩子中使用$watch
:
created () {
this.debounceUnwatch = this.$watch('q', _.debounce(
this.someMethod,
this.delay
))
},
destroyed () {
// Removed the watcher.
this.debounceUnwatch()
},
了解更多信息: https://vuejs.org/v2/api/#vm-watch
这也不起作用。它真的好像应该有。我认为需要做的是你需要去除更新q
而不是q
本身的任何内容。