Ошибки обновления из дочернего компонента в родительский в форме ReactJS

#javascript #reactjs #typescript #validation

#javascript #reactjs #typescript #проверка

Вопрос:

Я пытаюсь очистить 2 поля в форме с помощью кнопки X, которая показана на рисунке. Когда 1 из 2 полей имеет значение, в форме отображается ошибка (это нормальное поведение), у меня отображается 1 ошибка, если 1 из двух полей пустое (условие — два поля пустые или два поля заполнены), но когда я нажимаю на кнопку X, эта ошибка должна быть удалена, потому что два поля могут быть пустыми, у меня проблема в том, что ошибка не скрывается при нажатии на кнопку X (эта ошибка должна исчезнуть).

Вы можете увидеть два поля здесь:

Два поля формы

Кажется, что проверка формы не проверяется нормально, потому что форма не обновляет сообщения, которые должны отображаться в форме. (Я выполняю эти действия в файле поля компонента Field.jsx, а проверка FormValidation выполняется в основной форме создания файла Form.jsx). Моя кнопка объявлена таким образом:

 <button
  id="button__value_input"
  name="button_reset"
  type="button"
  className={styles['button']}
  onClick={() => this.resetFields(slug)}
>
  

Я думаю, что я должен отправить подтверждение обновления ошибки из файла дочернего компонента (поле, которое находится внутри формы) в файл родительского компонента (форма), но каким образом я могу отправить обновление ошибки от дочерних компонентов родительскому, который должен обновить и удалить сообщение об ошибке (потому что при нажатии на X сообщения об ошибках должны исчезнуть правильным способом очистки двух полей).

Когда я вношу изменения в поля ввода, ошибки проверки формы обновляются, но с помощью этой кнопки сброса, которая очищает поля, обновление ошибки не отражается в поле родительского компонента.

У меня есть файл проверки формы импорта в Field.jsx:

 import validateForm from '../../Form/formValidation';
  

Но у меня есть проверка валидаций в родительском компоненте Form.jsx:

 validate = (values) => {
    const errors = validate(values);
    //here are returned the errors:
    return Object.keys(errors).reduce(
      (prev, next) => ({ ...prev, [next]: this.props.intl.formatMessage({ id: errors[next] }) }),
      {},
    );
  

};

Если я выполняю console.log строку ошибок up, то при обновлении входных данных она будет оценена, но не оценена в Field.jsx поле при нажатии кнопки up.

Заранее спасибо за ваше время и помощь.

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

1. Добро пожаловать. Возможно, нам понадобится, чтобы вы показали немного больше связанного кода.