Reactjs 对提交和使用状态问题作出反应
嘿,所以我在使用react-hook表单时遇到了这个奇怪的问题 这是我代码的要点Reactjs 对提交和使用状态问题作出反应,reactjs,react-hooks,react-hook-form,Reactjs,React Hooks,React Hook Form,嘿,所以我在使用react-hook表单时遇到了这个奇怪的问题 这是我代码的要点 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" /> const[erro
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" />
const[error,setError]=useState(true)
const onSubmit=值=>{
设置错误(错误)
console.log(error)//第一次单击为true,第二次单击为false
}
正如您将看到的,我第一次单击输入时得到的错误为true,第二次单击时得到的错误为false
当我第一次点击输入时,我认为错误是假的。有人知道为什么它是真的吗
注意:我的表单是一个嵌套表单,我使用FormContext包装表单,以便将表单拆分为更小的组件。这可能是导致这种副作用的原因,还是我遗漏了一些明显的东西?是的,React就是这样
setError(false)
第一次运行并更改状态,但不能保证同步。因此,console.log()仍保持原有状态
是的,这样的反应很奇怪
setError(false)
第一次运行并更改状态,但不能保证同步。因此,console.log()仍保持原有状态
反应状态更改是异步的。不能保证您将在同步
控制台.log中获得最新的更改。如果要查看最近的更改,正确的记录值的方法是在useffect
hook中
const[error,setError]=useState(true)
useffect(()=>{
console.log(错误)
},[错误];
反应状态更改是异步的。不能保证您将在同步控制台.log中获得最新的更改。如果要查看最近的更改,正确的记录值的方法是在useffect
hook中
const[error,setError]=useState(true)
useffect(()=>{
console.log(错误)
},[错误];
这是打字错误吗const useState[error,setError]=useState(true)
是的,这是一个输入错误。我的错,我要编辑。这是打字错误吗const useState[error,setError]=useState(true)
是的,这是一个输入错误。我的错我会编辑的。啊,谢谢!我确实通过抛弃useState解决了我的问题,但仍然想知道useState为什么不起作用。这就把事情弄清楚了。啊,谢谢你!我确实通过抛弃useState解决了我的问题,但仍然想知道useState为什么不起作用。这就把事情弄清楚了。