Javascript 如何更改react typescript钩子中多个输入的值
我是react typescript世界的新手,目前我正在尝试仅使用一个onChangeHandler更改对象键值的状态,我搜索了很多,我看到的都是相同的解决方案,但没有帮助,在触发事件之前,我当前的输入字段保持为空。我将非常感谢你的帮助Javascript 如何更改react typescript钩子中多个输入的值,javascript,reactjs,typescript,react-hooks,Javascript,Reactjs,Typescript,React Hooks,我是react typescript世界的新手,目前我正在尝试仅使用一个onChangeHandler更改对象键值的状态,我搜索了很多,我看到的都是相同的解决方案,但没有帮助,在触发事件之前,我当前的输入字段保持为空。我将非常感谢你的帮助 const [editAddress, setEdditAddres] = useState({ houseNumber: '', houseName: '', flatNumber: '', street: '',
const [editAddress, setEdditAddres] = useState({
houseNumber: '',
houseName: '',
flatNumber: '',
street: '',
addressLine2: '',
town: '',
postcode: '',
});
const handleInputChange = (e) => {
const { name, value } = e.target;
setEdditAddres({
...editAddress,
[name]: value,
});
};
<form>
<TextInput
label="House number"
className="OrderDeliveryDetails__houseNumber"
name="houseNumber"
value={editAddress.houseNumber}
id="houseNumber"
error=""
onChange={handleInputChange}
/>
<TextInput
label="House name"
className="OrderDeliveryDetails__houseName"
name="houseName"
value={editAddress.houseName}
id="houseName"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Flat number"
className="OrderDeliveryDetails__flatNumber"
name="flatNumber"
value={editAddress.flatNumber}
id="flatNumber"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Street (optional)"
className="OrderDeliveryDetails__street"
name="street"
value={editAddress.street}
id="street"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Address line 2 (optional)"
className="OrderDeliveryDetails__addressLine2"
name="addressLine2"
value={editAddress.addressLine2}
id="addressLine"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Town or city"
className="OrderDeliveryDetails__town"
name="town"
value={editAddress.town}
id="town"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Postcode"
className="OrderDeliveryDetails__postcode"
name="postcode"
value={editAddress.postcode}
id="postcode"
error=""
onChange={handleInputChange}
/>
</form>
const[editAddress,setedditAddress]=useState({
门牌号:'',
户名:'',
单位编号:'',
街道:'',
地址行2:“”,
镇:'',
邮政编码:'',
});
常量handleInputChange=(e)=>{
常量{name,value}=e.target;
设置地址({
…编辑地址,
[名称]:值,
});
};
我能够修复它,问题隐藏在没有道具名称的组件中,这导致无法更改输入的当前值,我在将组件更改为正常的vanilla js后看到了这一点,然后它工作了。因此,为了便于将来参考,请检查组件上的道具。谢谢大家的帮助。我创建了这个,它们似乎工作得很好。。什么是TextInput
?这里有一个输入错误:setedditaddress
。请修复,看看它是否有帮助文本是正常的键入只是为了测试它。我不知道是什么原因,有趣的是,事件被触发了,但将新值保存到一个空键中,并且只保存一个字符,然后在重写新的单击之后
const [editAddress, setEdditAddres] = useState({
houseNumber: '',
houseName: '',
flatNumber: '',
street: '',
addressLine2: '',
town: '',
postcode: '',
});
const handleInputChange = (e) => {
const { name, value } = e.target;
setEdditAddres({
...editAddress,
[name]: value,
});
};
<form>
<TextInput
label="House number"
className="OrderDeliveryDetails__houseNumber"
name="houseNumber"
value={editAddress.houseNumber}
id="houseNumber"
error=""
onChange={handleInputChange}
/>
<TextInput
label="House name"
className="OrderDeliveryDetails__houseName"
name="houseName"
value={editAddress.houseName}
id="houseName"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Flat number"
className="OrderDeliveryDetails__flatNumber"
name="flatNumber"
value={editAddress.flatNumber}
id="flatNumber"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Street (optional)"
className="OrderDeliveryDetails__street"
name="street"
value={editAddress.street}
id="street"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Address line 2 (optional)"
className="OrderDeliveryDetails__addressLine2"
name="addressLine2"
value={editAddress.addressLine2}
id="addressLine"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Town or city"
className="OrderDeliveryDetails__town"
name="town"
value={editAddress.town}
id="town"
error=""
onChange={handleInputChange}
/>
<TextInput
label="Postcode"
className="OrderDeliveryDetails__postcode"
name="postcode"
value={editAddress.postcode}
id="postcode"
error=""
onChange={handleInputChange}
/>
</form>