【发布时间】:2020-04-09 00:04:37
【问题描述】:
在我的 React Hooks 应用程序中,我需要让用户在输入字段中输入 1000 毫秒。当 1000 毫秒到期时,将使用输入值发送 API 请求。
<input type='text' name='name' className='th-input-container__input' onChange={evt => testFunc2(evt.target.value)} />
值设置在testFunc2(evt.target.value):
const testFunc2 = useCallback(debounce((text) => setNameFilter(text), 1000), []);
一旦将 nameFilter 设置为新值,useEffect 就会发出一个 API 请求,因为 nameFilter 是它的依赖项。
这样一来,API 仅使用生成的用户输入而不是每个击键值进行查询,但输入不受控制。当我使用value={nameFilter} 将当前nameFilter 值添加到输入时,用户无法在输入中输入,并且输入仅接收最后输入的字符。
如何让用户输入的字符显示在输入中?
【问题讨论】:
-
只是好奇,你是自己写
debounce函数还是用lodash的? -
“just-debounce-it”提供的那个。
标签: react-hooks debounce