Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 对提交和使用状态问题作出反应_Reactjs_React Hooks_React Hook Form - Fatal编程技术网

Reactjs 对提交和使用状态问题作出反应

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

嘿,所以我在使用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[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为什么不起作用。这就把事情弄清楚了。