reactjs - React Hook Form - 在不清除表单的情况下重置“isDirty”?
问题描述
基本上就是标题所说的。当我提交表单时,我正在检查登录是否成功,如果没有,它会显示一条消息。但是,当用户开始键入时,我希望此消息消失。
有点假设isDirty
一旦提交表单就会被清除,但它仍然很脏。我可以reset
从中调用onSubmit
,但这会清除表单的内容——这是我不想要的。
想法?
解决方案
您可以将一组新值发送到reset。由于您确实在提交处理程序中收到了一组值,因此您可以通过以下方式连接这两个功能:
const {reset, handleSubmit, formState} = useForm();
const {isDirty} = formState;
const handleFormSubmit = (values) =>
{
//This would be the call where you post your info
fetch('google.com')
.then(response => console.log('response', response))
.finally(() => reset(values));
}
请注意reset(values)
上面示例中的,它将您的表单重置为它尝试提交的值。因此,渲染isDirty
回假。
在发送信息后不重新加载或重定向的表单中,这是一个相当普遍的需求,所以我认为他们最终会创建一种更简洁的方式来完成它。
推荐阅读
- matlab - 为什么当我手动输入像素值时 MATLAB 的 norm 函数起作用,但在用于访问图像中的像素值时不起作用,如下所示?
- javascript - Vue Draggable - 有没有办法在列表底部设置占位符放置区/位置?
- windows - 关于在上下文菜单中添加行参数的问题
- python - 使用 odeint 解包的值不足(预期为 2,得到 1)
- angular - 更新与行为主题相关的变量而不更新行为主题
- r - R:带有read_fwf()的“错误:意外的字符串常量”
- r - 闪亮的 SQL Server
- python - BS4 + html, b 标签问题
- python - 在python 3中读取香港补充字符集
- python-3.x - 在连接之前或之后使用 StandardScaler 缩放多个功能?