如何解决尽管使用提供的方法进行设置,为什么我的状态变量没有更新?
...
const [submitted,setSubmitted] = useState(false);
// form submission handler
const handleSubmit = event => {
// [DEBUG] ////////////////////////
console.log('entered handleSubmit');
////////////////////////////////////
event.preventDefault();
const isValid = !!(values.firstName && values.lastName && values.email);
setSubmitted(isValid); // ???? changes not being reflected in submitted ??????
// [DEBUG] //////////////////////////////////////////
console.log('[isValid]',isValid); // true
console.log('[submitted]',submitted); // false ???
console.log('exiting handleSubmit');
////////////////////////////////////////////////////
};
...
如您所见,代码尝试更新状态变量。但是,更改未得到反映。为什么有任何解释?
解决方法
状态异步更新。 您可以在useEffect()中捕获更新的状态值。
useEffect(() => {
console.log(submitted);
},[submitted]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。