Vue 和 lodash 去抖动有什么问题



道具:

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 - 它有效;否则 - 函数不去抖动)。

我做错了什么?谢谢。

您将

无法在此处完成设置delaythis不是该范围内的组件。您可以在生命周期钩子中使用$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本身进行抖动。

最新更新