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
}
});
};