Проблема с отправкой формы React

#javascript #reactjs #forms

#javascript #reactjs #формы

Вопрос:

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

   const handleSubmit = (event) => {
    event.preventDefault();
    setOpen(false);
    setSubmission({
      ref: event.target[0].value,
      brand: event.target[1].value,
      iname: event.target[2].value,
      gtin: event.target[3].value,
      qty: 0,
    });
    console.log(submission);
  };
 

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

1. Это связано с тем, что состояние обновляется асинхронно. Вы не получите обновленные значения немедленно

Ответ №1:

Ну, вот как работают перехваты, к тому времени, когда вы console.log(submission) , состояние еще не изменилось.

Это связано с тем, что когда вы вызываете setSubmission(), он сообщает react, что вы хотите обновить состояние, и помещает его в очередь.

Если вы хотите зафиксировать изменение состояния, используйте useEffect() перехват

     useEffect(() => {
        console.log(submission); // this hook captures the state change and this will have the correct value
}, [submission]);  // think of this as a dependency variable that `useEffect` will listen for changes.
 

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

1. Спасибо за ваш отличный ответ!