如何改进这段代码?
const [formData, setFormData] = useState({});
const setFormFieldValue = (name, value) => {
let newValues = {};
newValues[name] = value;
setFormData({...formData, ...newValues})
}
答案 0 :(得分:1)
有时这可能不合适,因为 formData 中的值可能不会更新,因为渲染周期仍然存在。
如果您应该使用最新状态并使用新状态更新状态,那么您必须访问之前的状态。
例如:
const [formData, setFormData] = useState({});
const setFormFieldValue = (name, value) => {
let newValues = {};
newValues[name] = value;
setFormData(prevFormData => {...prevFormData, ...newValues})
}