【发布时间】:2021-01-05 03:37:44
【问题描述】:
我在单击表单提交按钮时使用 React useState 挂钩更新状态,直到第二次单击时状态才会更新。相信我需要使用 useEffect 但不确定如何使用 onClick 实现。
const files = [
{
id: 'foo'
}
]
const [fieldName, setName] = useState({});
const onSubmit = () => {
files.map((file) => {
if (!fieldName[file.id]?.value) {
setName(() => ({
...fieldName,
[file.id]: {
value: test[file.id]?.value,
error: true
},
}));
}
});
console.log(fieldName);
// Output = {}
// Expected Output = { foo: { error: true } }
if (fieldName) // simply to show i need access to updated fieldName at this point
};
【问题讨论】:
-
useState 是异步函数。将控制台移到函数之外
-
我应该声明我正在尝试使用该函数中的更新状态(如果发现错误,请不要继续)
-
@James 将其保存到变量中。您可以对该变量调用 setState 并继续在函数中使用该变量。
-
@404 例子芽?
标签: reactjs use-effect use-state