【发布时间】:2023-03-25 08:17:01
【问题描述】:
我的网页中有一个组件,用户可以在其中重复一个表单,即在另一个表单下方添加一个表单。我通过在表单之外添加一个加号图标来实现这一点。这个想法是我将存储一个表单对象,该对象将包含我所在州的每个表单的所有字段值。当用户添加新表单时,我将在单击添加按钮的表单的索引之后添加一个表单对象。
代码sn-p:
const singleFormValues = {
email: "",
first_name: "",
last_name: "",
role: Object.keys(roles)[1],
};
const [formValue, setFormValue] = useState([singleFormValues]);
const handleAddForm = (addAfterIndex) => () => {
setFormValue(prevFormValue => {
prevFormValue.splice(addAfterIndex, 0, singleFormValues);
console.log({
prevFormValue
})
return prevFormValue;
});
}
如您所见,我创建了 formValue 这是一个数组,它将用于呈现表单。 问题在于 setFromValue 的功能形式,由于某些原因,当我单击添加按钮 handleAddForm 被执行时,console.log 打印正确的值,即,一个额外的对象被添加到formValue 但是我的组件没有重新渲染。这让我相信状态没有得到更新,但它是不真实的,因为每次我点击添加按钮时,一个新的对象被添加到状态中。
谁能指出它有什么问题?
【问题讨论】:
标签: reactjs react-hooks