【发布时间】:2020-09-11 02:31:33
【问题描述】:
我有一个组件,它有一个添加新项目的表单,并且它还应该更新现有项目。我正在尝试设置表单字段的值,这样如果用户选择编辑一个项目,他将在表单中拥有现有项目的所有数据,他只需要编辑这些数据。
我为此使用useEffect:
useEffect(() => {
if(props.editedItem)
{
inputChangedHandler(props.editedItem.companyName, "company");
inputChangedHandler(props.editedItem.name, "name");
inputChangedHandler(props.editedItem.description, "description");
}
}, [props.editedItem])
inputChangedHandler 方法是设置特定字段(公司、名称、描述)的表单值:
const inputChangedHandler = (newVal, inputIdentifier) =>
{
const updatedOrderForm = {
...formSettings
};
const updatedFormElement = {
...updatedOrderForm[inputIdentifier]
};
updatedFormElement.value = newVal;
updatedOrderForm[inputIdentifier] = updatedFormElement;
setFormSettings(updatedOrderForm);
}
这里的问题是只更改了最后一个字段(代码情况下的描述)。如果我更改了行顺序并且“名称”将是最后一个,则会出现名称信息而不是描述。
我该如何解决?
【问题讨论】:
-
请显示
inputChangedHandler方法 -
添加方法
标签: reactjs use-effect use-state