我有一个文本输入。如果我点击页面中的一个特定按钮,我想重置输入的值。下面是我的代码:
const inputRef = useRef()
const handleClick= () => {
inputRef.current.value.reset();
return "hello world"
}
return (
<>
<input type="text" ref={inputRef}/>
<button onClick={()=> handleClick}>delete all</button>
</>
)
它不工作。怎么解决这个问题?
5条答案
按热度按时间hkmswyz61#
reset
在form
元素上可用。您可以将您的输入与表单 Package 在一起,并在表单上触发reset
。cmssoen22#
您可以清除输入字段中的值,如下所示。
并在按钮中更改
onClick
调用,如下所示如果你想完全重置一个有多个输入的表单,你可以按照下面的方法。在下面的例子中,表单将在提交后重置
如果不想使用Ref
vddsk6oq3#
你可以通过设置一个空字符串来清除文本输入域,如果你想使用不受控制的输入,你可以像
inputref.current.value = ""
这样做。然而,如果你想使用受控输入,你可以创建一个状态变量来跟踪输入字段的值。例如,
这是一个具有两种实现的codesandbox。
oyxsuwqo4#
有两个问题,一个是传递一个调用函数的函数到onClick处理程序--这是不需要的。如果在呈现之前定义函数,则不需要传递匿名函数到onClick处理程序。
另一个问题是handleClick函数调用reset,而reset不是一个输入函数,要重置引用的输入值,可以将其设置为空字符串(或者任何你想要的“默认”值)。
nkcskrwz5#
输入中的静止值