bind, debounce 突然报错 Expect a fu

2020-02-21  本文已影响0人  王善良_
image.png

因为我这样写了

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指向功能

上一篇下一篇

猜你喜欢

热点阅读