React Ax ios - извлеченных данных нет в списке - PullRequest
0 голосов
/ 26 февраля 2020

Я отправляю данные и получаю данные с помощью Ax ios. Данные поступают, я вижу их с console.log(res.data), но я не могу применить res.data к setMessages

  const [formData, setFormData] = useState({ input: null });

  const [messages, setMessages] = useState([]);

  const { input } = formData;

  const onChange = e => setFormData({ input: e.target.value });

  const onSubmit = event => {
    event.preventDefault();
    const data = new FormData(event.target);
    setMessages(prevMsgs => [...prevMsgs, formData]);

    console.log({ input });

    axios
      .post(`http://localhost:4000/prediction`, (data: data), {
        crossdomain: true
      })
      .then(res => {
        console.log(res.data);
        setMessages(prevMsgs => [...prevMsgs, res.data]);
      })
      .catch(error => {
        console.log(error.message);
      });
  };

1 Ответ

1 голос
/ 27 февраля 2020

В вашем коде вы выполняете асинхронную операцию c напрямую. Для выполнения асинхронной операции c в функциональном компоненте 'useEffect' необходимо использовать хук в зависимости от требований монтирования / обновления.

Так же, как в компоненте класса, асинхронный c операции выполняются из метода события жизненного цикла componentDidMount, хук useEffect является наследником componentDidMount, componentDidUpdate и componentWillUnmount в функциональных компонентах.

эквивалент componentDidMount для компонента React / компонента Hooks?

...