gpt4 book ai didi

react-hooks - 使用去抖动的 onChange 处理程序设置输入值

转载 作者:行者123 更新时间:2023-12-05 02:58:07 26 4
gpt4 key购买 nike

在我的 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 值添加到输入时,用户无法输入输入,并且输入仅接收最后输入的字符。

如何让用户输入的字符显示在输入中?

最佳答案

更新的答案:

const debouncedApiCall = useCallback(debounce((text) => {
getRecordsForPage(1, text, '', '', '', '', 10, {});
}, 1000), [])

useEffect(() => {
debouncedApiCall(nameFilter);
}, [nameFilter, debouncedApiCall])

<input type='text' value={nameFilter} onChange={evt => setNameFilter(evt.target.value)} />

关于react-hooks - 使用去抖动的 onChange 处理程序设置输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59358092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com