嘿,我在使用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" />
如您所见,我第一次单击输入时得到的错误为true,而第二次单击时得到的错误为false。
我希望第一次输入错误时错误为假,有人知道它为什么是真的吗?
注意:我的表单是一个嵌套表单,在其中我使用FormContext包裹表单,以便可以将表单拆分为较小的组件。可能是造成这种副作用的原因,还是我所缺少的只是显而易见的东西?
是的,React很奇怪。setError(false)
第一次运行并更改状态,但不能保证是同步的。因此,console.log()之后的状态仍然为旧状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句