在我的React Hooks应用程序中,我需要让用户键入输入字段1000毫秒。当1000ms过期时,将发送带有输入值的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), []);
一旦nameffilter
设置为新值useffect
就会发出API请求,因为nameffilter
是它的依赖项。通过这种方式,只使用结果用户输入而不是每个键击值来查询API,但输入保持不受控制。当我使用value={nameFilter}
将当前nameFilter
值添加到输入时,用户无法在输入中键入,并且输入只接收最后键入的字符。
如何让用户键入的字符显示在输入中?
最新答复:
js prettyprint-override">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)} />
问题内容: 好奇解决此问题的正确方法是: 显然,您可以创建单独的handleChange函数来处理每个不同的输入,但这不是很好。同样,您可以为单个输入创建一个组件,但是我想看看是否有一种方法可以做到这一点。 问题答案: 我建议坚持使用元素上的标准HTML属性来标识您的输入。另外,您不需要将“总计”作为单独的值保留在状态中,因为可以通过在您的状态中添加其他值来构成“总计”:
问题内容: 我在数组中呈现对象输入元素的集合。 这使我可以编写onChange处理函数: 但是在此处理程序中,我需要更改的范围对象的ID。因此,我可以更改更改在渲染函数中创建输入元素的方式并更改: 现在,我的处理程序将接收range.id作为参数,但是现在我没有newName值。我可以使用裁判获得它 这是我知道的唯一解决方案,但我怀疑有更好的解决方案。 问题答案: 该参数还通过了,但参数前置到参数
首页公告 用于设置前台公告,包括批量删除操作、添加首页公告操作、公告列表。 添加首页公告设置的信息包括公告标题、排序、公告内容。公告列表的显示项包括公告标题、创建时间、排序和单个公告的修改及删除操作。
我正在开发一个应用程序(控制台),其中包含一个while循环,我希望允许用户暂停和恢复。经过一些研究,似乎一个额外的线程负责等待用户输入是正确的解决方案。 我已经能够实现持续等待输入的额外线程,并且还有一个kill方法,它设置flag变量来停止线程while()循环。不幸的是,除非有输入,否则while循环不会结束,只有在输入线程的while环至少完成一次后,这个kill标志才会生效。由于主线程也
问题内容: 我已经通过以下网址访问了StreamGobbler JavaWorld:Stream Gobbler 我了解用法及其实施原因。但是,所涵盖的方案仅是那些可能存在命令/处理错误的输出的方案。 我找不到任何使用StreamGobbler来处理输入的情况。例如,在中,我必须指定电子邮件的正文,并按照以下格式进行操作 如何通过StreamGobbler处理此问题,或者不需要通过它进行处理。 问
请查看下面位于扩展类内部的代码: null