reactjs - React-hook-form 提交和 useState 问题
问题描述
嘿,所以我在使用 react-hook-form 时遇到了这个奇怪的问题。
这是我的代码的要点
const [error, setError] = useState(true)
const onSubmit = values => {
setError(false)
console.log(error) // true on first click and false on second click
}
<input type="submit" />
正如你所看到的,我第一次点击输入时得到错误为真,第二次点击它时得到错误。
我希望第一次单击输入时错误是错误的,有人知道为什么它是真的吗?
注意:我的表单是一个嵌套表单,我使用 FormContext 来包装我的表单,这样我就可以将表单拆分为更小的组件。会不会是这导致了这种副作用,或者只是我遗漏了一些明显的东西?
解决方案
是的,React 就是这么奇怪。setError(false)
正在第一次运行并更改状态,但不能保证是同步的。所以console.log() 之后它仍然具有旧状态。
推荐阅读
- vim - 我在哪里可以重置 VIM 中 cErrInParen 和 cErrInBracket 的突出显示?
- c# - 如何修复 Encoding.ASCII.GetBytes 的意外输出
- qt - 如何根据 QComboBox 值修改窗口内容
- pandas - 根据现有列的条件创建新列的最简洁方法是什么?
- python - 如何用 Python 在 Windows 上导出证书
- css - 如何通过更改 D3 图表中的 svg 过滤器元素对 svg 圆应用框阴影效果
- python - 使用 Django QuerySets 的复杂查询
- c# - WPF 进度条 - 从 ClickOnce 升级更新进度
- c - 我想接受 SIGQUIT 信号并执行一些操作
- cryptography - 为什么雅可比符号的分母只允许奇正整数?