【发布时间】:2021-08-13 17:41:14
【问题描述】:
我有一个函数将输入作为输入字段的名称并将该输入字段的值作为
function handleChange(e:React.ChangeEvent<HTMLInputElement>):void{
const { name, value } = e.target;
const key = name
let newArr = [...form];
newArr.map(item => {
return {...form , [key]: value}
});
setForm(newArr)
}
默认视图的结构是这样的:
const form = [{
"Name":"Nagesh",
"Email":"abc@gmail.com",
"Address" : {
"House_Number":"123",
"Street_Name":"something",
"City":"example",
},
"Phone_Number":"567899090"
}]
现在在点击onChange 事件后,我收到输入字段的名称和当前输入字段的值到handleChange 函数。问题是newArr 不会用新值更新旧值,也不会用新值更新状态。
例如,如果我将值传递给 name 作为输入字段的名称,即“名称”,其值为“Nagesh Katna”,它会获取值但不会更新 newArr 的归档 [{"Name": "Nagesh Katna"}]
如果我console.log(newArr)。数组保持默认值。我使用 TypeScript 和语义 UI 作为前端。
我已经为表单定义了一个具有相同结构的接口,并以某种方式使用状态
const defaultView: Values[] = []
const [form, setForm]: [Values[], (fetch: Values[]) => void] = useState(defaultView);
请保存我的周末。
【问题讨论】:
标签: javascript reactjs typescript