Javascript 如何基于文本字段输入动态填充状态?

Javascript 如何基于文本字段输入动态填充状态?,javascript,reactjs,Javascript,Reactjs,我有一个表单,它使用一个名为model的JavaScript对象和一个接收输入的文本字段来呈现。基于此,需要更新状态 不幸的是,状态更新为最后一个条目输入。并不是表单中所有已填写的值 我还没有设法让这里提到的方法对我起作用: 构造函数(道具){ 超级(道具); 此.state={ 表格:{}, } } onChange=(e,键,类型)=>{ 让列表=[]; 如果(类型==“文本”){ 列表[键]=e.target.value; } 否则{ //处理非文本值的逻辑 let found=this

我有一个表单,它使用一个名为model的JavaScript对象和一个接收输入的文本字段来呈现。基于此,需要更新状态

不幸的是,状态更新为最后一个条目输入。并不是表单中所有已填写的值

我还没有设法让这里提到的方法对我起作用:

构造函数(道具){
超级(道具);
此.state={
表格:{},
}
}
onChange=(e,键,类型)=>{
让列表=[];
如果(类型==“文本”){
列表[键]=e.target.value;
} 
否则{
//处理非文本值的逻辑
let found=this.state.Form[key]?true:false;
如果(找到){
列表[键]=假;
}否则{
列表[键]=真;
}
}
this.setState({Form:list});
};
renderform=()=>{
返回model.map(m=>{
{this.onChange(event,m.key,“text”);}
/>
})
}
试试这个:

this.setState(prevState => ({ Form: {...prevState.Form, ...list} }));

因为当您使用
this.setState({Form:list})时
您的
表单
状态每次都会被新数组覆盖。

这是一个数组
表单:[
但您将其视为一个对象什么是
m.key
model
?m.key是对象的键,即:Apple:true-其中“Apple”是键im抱歉,这给了我这个错误:第190:48行:预期分配或函数调用,但看到了expression@Aims.kar-更新了我的答案。还要确保
onChange
中的逻辑是正确的。此代码以前在以下状态下不进行任何操作,更新如下。setState{[key]:false}-主要问题是现在它是一个需要更新的特定状态-它现在抛出一个错误prevState.FilledForm不可编辑-表单状态需要为空,并在表单填充时构建-因此它不能在空状态中迭代-我不明白如何修复此问题?@Aims.kar-正如您在评论中提到的那样将数组用作对象。尝试更改
let list=[]
让列表={}
。尽管这本身并不能解决问题。我建议建立一个这样的闪电战。也再次更新了我的答案。
this.setState(prevState => ({ Form: {...prevState.Form, ...list} }));