Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改react typescript钩子中多个输入的值_Javascript_Reactjs_Typescript_React Hooks - Fatal编程技术网

Javascript 如何更改react typescript钩子中多个输入的值

Javascript 如何更改react typescript钩子中多个输入的值,javascript,reactjs,typescript,react-hooks,Javascript,Reactjs,Typescript,React Hooks,我是react typescript世界的新手,目前我正在尝试仅使用一个onChangeHandler更改对象键值的状态,我搜索了很多,我看到的都是相同的解决方案,但没有帮助,在触发事件之前,我当前的输入字段保持为空。我将非常感谢你的帮助 const [editAddress, setEdditAddres] = useState({ houseNumber: '', houseName: '', flatNumber: '', street: '',

我是react typescript世界的新手,目前我正在尝试仅使用一个onChangeHandler更改对象键值的状态,我搜索了很多,我看到的都是相同的解决方案,但没有帮助,在触发事件之前,我当前的输入字段保持为空。我将非常感谢你的帮助

    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>