Реагировать — не удается изменить предварительно заполненное входное значение из серверной части

#reactjs #forms #input #react-hooks

#reactjs #формы #ввод #реагировать-крючки

Вопрос:

Работая над приложением React и столкнувшись с небольшой проблемой, из-за которой я не могу очистить свое входное значение, после того, как введенное значение было возвращено / предварительно заполнено из серверной части, попытался погуглить эту проблему, нашел несколько похожих тем здесь, но я не смог решить эту проблему.

Требования: name атрибут должен быть обязательным, также введенное значение должно быть напечатано вне ввода, поэтому я использовал value с. defaultValue

Решения с недостатками

  1. Удалите атрибут «name», но я потеряю предварительно заполненное значение
  2. Удалите value , defaultValue , и onChange обработчик, но когда я потеряю значение для распечатки.

Пример
введите описание изображения здесь Может кто-нибудь помочь с этой проблемой, что заполняет все условия. Упростил мой код, чтобы было проще понять мой подход:

 const [value, setValue] = useState('');

const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  setPartnerSlug(event.target.value);
  // Also tried:
  // setValue({
  //   ...value,
  //   [event.target.name]: event.target.value,
  // });
};

<input
  name="name"
  label="label"
  placeholder="placeholder"
  value={value}
  defaultValue={value}
  onChange={onChange}
/>
Print Value: {value} // Required: Display typed input value
 

Комментарии:

1. Шаги кажутся правильными, попробуйте это… onChange={(e) => setValue(e.target.value)}

2. не работает, по-прежнему не удается ввести

3. @zahrazamani да, для простого ввода работает, но в этом случае значение заполняется из серверной части при инициализации. Также я использую ввод из ant desing , я просто упростил пример кода, я думаю, что это не зависит от него