Javascript 输入不允许更改更改中的值

Javascript 输入不允许更改更改中的值,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我正在尝试修改输入值​​在更改事件中,它不允许我使用此代码 <Input type="text" name="traMake" required value={truckEdit.tra.traMake} onChange={ingresarValoresMemoria} id="idMake" placeholder="Campo obligatorio" /> 是否有任何方法可以保持结构并避免输入阻

我正在尝试修改输入值​​在更改事件中,它不允许我使用此代码

<Input type="text" name="traMake" required value={truckEdit.tra.traMake} onChange={ingresarValoresMemoria} id="idMake" placeholder="Campo obligatorio" />

是否有任何方法可以保持结构并避免输入阻塞?最简单的方法是使用对象扩展

请参阅下面的代码

函数handleTraMakeChange(newValue){
setTruckEdit({
…卡车司机,
tra:{
…truckEdit.tra,
[“traMake”]:newValue
}
});
}
返回(
handleTraMakeChange(e.target.value)}
id=“idMake”
占位符=“Campo义务”
/>
);

您需要在更改时更新
truckEdit.traMake
值。你可以这样做

<Input type="text" name="traMake" required value={truckEdit.tra.traMake} onChange={(e)=>{ingresarValoresMemoria(e, 'traMake')}} id="idMake" placeholder="Campo obligatorio" />
对于
tra
中的其他字段,您需要不同的输入,并且需要在其
onChange
函数上传递相应的
fieldName


我不明白你的问题。但我想更改tra中的所有内容:({traMake:“”,traOption:“”,traUnit:“”,}),在我有这个常量{name,value}=e.target之前;setTruckEdit(preterior=>({…preterior[name]:value}))@RollerFernandez
traOption
traUnit
必须在不同的输入字段中,对吗?您还可以传递e和字段名。我会更新代码。继续阻止输入应用这个solution@RollerFernandez我已经设置了一个小演示,输入没有阻塞。看看tra:({traMake:'',traOption:'',traUnit:'',}),我想在编写时更改all的值
<Input type="text" name="traMake" required value={truckEdit.tra.traMake} onChange={(e)=>{ingresarValoresMemoria(e, 'traMake')}} id="idMake" placeholder="Campo obligatorio" />
const ingresarValoresMemoria = (e, fieldName) => {
    setTruckEdit({
      ...truckEdit,
      tra: {
        ...truckEdit.tra,
        [fieldName]: e.target.value
      }
    });
  };