javascript - 输入不允许更改更改中的值
问题描述
我正在尝试修改更改事件中的输入值,但它不允许我这是我的代码
<Input type="text" name="traMake" required value={truckEdit.tra.traMake} onChange={ingresarValoresMemoria} id="idMake" placeholder="Campo obligatorio" />
但是当通过 value = {truckEdit.tra.traMake} 修改值时,如果它允许我修改它但我的实体具有这种结构
const [truckEdit,setTruckEdit]= useState({
truId :'',
driId : '',
TruExdate : '',
TruAddress : '',
tra : ({
traMake : '',
traOption : '',
traUnit : '',
}),
TraUnit : '',
TraOption : '',
truDocurl : ''
});
有什么方法可以保持结构并能够避免输入阻塞
解决方案
最简单的方法是使用 Object Spread。
请参阅下面的代码
function handleTraMakeChange(newValue) {
setTruckEdit({
...truckEdit,
tra: {
...truckEdit.tra,
["traMake"]: newValue
}
});
}
return (
<div className="App">
<input
type="text"
name="traMake"
required
value={truckEdit.tra.traMake}
onChange={(e) => handleTraMakeChange(e.target.value)}
id="idMake"
placeholder="Campo obligatorio"
/>
</div>
);
推荐阅读
- c# - 如何在未经授权的情况下引发自定义异常?
- python - Kivy - 课堂上的屏幕管理
- python - python多处理中的共享变量不起作用
- excel - 如何从 Excel VBA 中的二维数组中提取百分位数?
- javascript - 单选按钮作为图像卡
- google-apps-script - 无法与自定义函数 Google App 脚本比较时间
- android - 是否可以以编程方式将新应用程序上传到 Google Play 商店?
- protocol-buffers - GRPC 从 1.25.0 更新到 1.34.1 后找不到 simbol 错误
- python - 使用 python pandas 操作 excel
- math - 如何计算 3ds Max 材质到模型的映射