我正在使用 lodash 在组件上调用 debounce 函数,如下所示:
...
import _ from 'lodash';
export default {
store,
data: () => {
return {
foo: "",
}
},
watch: {
searchStr: _.debounce(this.default.methods.checkSearchStr(str), 100)
},
methods: {
checkSearchStr(string) {
console.log(this.foo) // <-- ISSUE 1
console.log(this.$store.dispatch('someMethod',string) // <-- ISSUE 2
}
}
}
- 问题1是我的方法
checkSearchStr
不知道foo
- 问题 2 是我的商店也是
undefined
为什么我的方法在通过 _.debounce
调用时不知道 this
?正确的用法是什么?
原文由 Artur Grigio 发布,翻译遵循 CC BY-SA 4.0 许可协议
你的手表应该是这样的。
然而,这有点不寻常。我不明白你为什么要让手表去抖动。可能你宁愿只是去抖动
checkSearchStr
方法。我想指出的另一件事;代码中没有
searchStr
已定义。当您使用 Vue 观察一个值时,您正在观察一个数据或计算属性。正如您当前定义的那样,在searchStr
上的监视将永远不会执行。