Опоры:
props: {
delay: Number,
}
Наблюдатель:
watch: {
q: _.debounce(function() {
console.log(this.delay); // 500; always works fine, this.delay is here
}, this.delay) // never works;
},
Если hardcode задерживается (установите 500
вместо this.delay
- он работает, в противном случае - функция не debounce).
Что я делаю неправильно? Благодарю.
Вы не сможете установить 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
.
this
функция доступна внутри функции, которая передается в _.debounce, если она не находится в области видимости?