微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

后坐力状态未正确更新

如何解决后坐力状态未正确更新

我有以下代码

const [verificationValues,setValues] = useRecoilState(verificationFormValues);
setValues({
   ...verificationValues!,nidOrPassport,addressproof,recentPhoto,bankAccountStateMents,businessProof,salarySlip,employeeIdCard,});

提交表单后,我调用了 setValues 函数。当我在控制台记录此验证值时,它没有更新验证值。但是,如果我在提交处理程序之后控制台记录这些值,那么它就会工作并显示更新后的值。另外,我刚刚注意到它在我再次按下提交按钮后可以工作。 setValues 函数也不是异步的,需要一些时间才能完成。那么为什么会发生这种情况呢? 我现在很困惑。提前致谢。

重要

那些 nidOrPassport、addressproof、recentPhoto 等都是对象

解决方法

事实证明,这实际上是一个反应问题。 setValues 正在更新值,但更新后的值只能在下一次渲染时访问。所以我必须使用 useEffect 钩子,现在它可以工作了。

useEffect(() => {
    console.log(verificationValues);
  },[verificationValues]);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。