Vue 和 lodash debounce 有什么问题?
2017-10-31
1231
道具:
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
- 它会起作用;否则 - 函数不会去抖动)。
我做错了什么?谢谢。
1个回答
您将无法在那里完成
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
本身。
Bill Criswell
2017-10-31