反冲状态未正确更新
Recoil State is not updating properly
我有以下代码。
const [verificationValues, setValues] = useRecoilState(verificationFormValues);
setValues({
...verificationValues!,
nidOrPassport,
addressProof,
recentPhoto,
bankAccountStateMents,
businessProof,
salarySlip,
employeeIdCard,
});
提交表单后,我将调用 setValues 函数。当我在控制台记录此 verificationValues 时,它没有更新 verificationValues。但是,如果我在提交处理程序之后控制台记录这些值,那么它会工作并显示更新后的值。另外,我刚刚注意到它在我再次按下提交按钮后起作用了。 setValues 函数也不是异步的,需要一些时间才能完成。那么为什么会这样呢?
我现在很困惑。提前致谢。
重要
那些nidOrPassport、addressProof、recentPhoto等都是对象
原来是react的问题。 setValues 正在更新值,但更新后的值只能在下一次渲染时访问。所以我必须使用 useEffect 钩子,现在它可以工作了。
useEffect(() => {
console.log(verificationValues);
}, [verificationValues]);
我有以下代码。
const [verificationValues, setValues] = useRecoilState(verificationFormValues);
setValues({
...verificationValues!,
nidOrPassport,
addressProof,
recentPhoto,
bankAccountStateMents,
businessProof,
salarySlip,
employeeIdCard,
});
提交表单后,我将调用 setValues 函数。当我在控制台记录此 verificationValues 时,它没有更新 verificationValues。但是,如果我在提交处理程序之后控制台记录这些值,那么它会工作并显示更新后的值。另外,我刚刚注意到它在我再次按下提交按钮后起作用了。 setValues 函数也不是异步的,需要一些时间才能完成。那么为什么会这样呢? 我现在很困惑。提前致谢。
重要
那些nidOrPassport、addressProof、recentPhoto等都是对象
原来是react的问题。 setValues 正在更新值,但更新后的值只能在下一次渲染时访问。所以我必须使用 useEffect 钩子,现在它可以工作了。
useEffect(() => {
console.log(verificationValues);
}, [verificationValues]);