因为我这样写了
import { debounce } from 'lodash';
函数这里这样用,感觉用法没问题啊
@debounce(500)
handleSearch = async value => {}
仔细找了一下原因,原来是包下错了,因为@debounce,这样子是装饰器的写法,用普通的lodash包会报错,得用lodash 的装饰器包
cnpm i lodash-decorators --save
import { bind, debounce } from 'lodash-decorators';
这样子应该没问题了吧。。。。。
测试一下,突然发现debounce虽然没报错,但是好像没生效,我直接敲了一堆英文,秒发请求
没生效?????
怀疑是写法问题,换了一种写法
@bind
@debounce(500)
async handleSearch(value) {}
成功,原来箭头函数跟async函数结合,不能用@debounce 装饰在上面,要换成普通async函数的写法
然后 再用 @bind 来实现箭头函数的this指向功能
网友评论