首页 > 解决方案 > 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 来包装我的表单,这样我就可以将表单拆分为更小的组件。会不会是这导致了这种副作用,或者只是我遗漏了一些明显的东西?

标签: reactjsreact-hooksreact-hook-form

解决方案


是的,React 就是这么奇怪。setError(false)正在第一次运行并更改状态,但不能保证是同步的。所以console.log() 之后它仍然具有旧状态。

React hooks useState 不使用 onChange 更新


推荐阅读