useState Hook 未正确更新
useState Hook not updating properly
我的 useState 挂钩没有正确更新,它不能一次获取 2 个值
例如:- 我的 useState 挂钩是
const [error, setError] = useState({
empty: "",
length: "",
});
const submitHandler = (e) => {
e.preventDefault();
if (email == "" || password == "")
setError({ ...error, length: "no lengthy values" });
if (email.length < 3) {
setError({ ...error, empty: "no empty values" });
}
setError 仅更新 2 个条件中的一个,useState 数组也发生了同样的情况,useState 无法一次 update/push 多个数据,任何答案都将非常有用。谢谢
虽然您可以改用回调,例如:
setError(error => ({ ...error, empty: "no empty values" }));
我认为将状态设置 一次 会更有意义。如果测试未生成错误,请将关联的 属性 设置为空字符串:
setError({
length: email === "" || password === "" ? 'no lengthy values' : '',
empty: email.length < 3 ? 'no empty values' : ''
});
更好的是,将不同的状态分开:
const [emptyError, setEmptyError] = useState('');
然后,例如,当您需要为 empty
设置错误时调用 setEmptyError
。
我的 useState 挂钩没有正确更新,它不能一次获取 2 个值 例如:- 我的 useState 挂钩是
const [error, setError] = useState({
empty: "",
length: "",
});
const submitHandler = (e) => {
e.preventDefault();
if (email == "" || password == "")
setError({ ...error, length: "no lengthy values" });
if (email.length < 3) {
setError({ ...error, empty: "no empty values" });
}
setError 仅更新 2 个条件中的一个,useState 数组也发生了同样的情况,useState 无法一次 update/push 多个数据,任何答案都将非常有用。谢谢
虽然您可以改用回调,例如:
setError(error => ({ ...error, empty: "no empty values" }));
我认为将状态设置 一次 会更有意义。如果测试未生成错误,请将关联的 属性 设置为空字符串:
setError({
length: email === "" || password === "" ? 'no lengthy values' : '',
empty: email.length < 3 ? 'no empty values' : ''
});
更好的是,将不同的状态分开:
const [emptyError, setEmptyError] = useState('');
然后,例如,当您需要为 empty
设置错误时调用 setEmptyError
。