React не выполняется код после запроса

Рейтинг: 0Ответов: 2Опубликовано: 13.08.2023

такой вопрос мучаюсь уже дня два где то, у меня есть роут на cart и с него по клику на кнопку переходит на order, так вот когда я захожу на order на прямую не через cart > button > order а сразу просто пишу /order/ то в консоли я вижу Here два раза, то есть после вызова axios код далее идет, а если я зайду через кнопку то есть компонента пере рисуется как я понял, то выведется только 1 Here. Помогите не понимаю в чем ошибка.

  useEffect(() => {
    const fetchPaymentMethods = async () => {
      console.log("Here");
      const response = await axios.get(
        "http://localhost:3001/api/getPaymentMethods"
      );
      console.log("Here");
      // const jsonData = await data.json();
      // setPaymentMethods(jsonData);
    };

    fetchPaymentMethods();
    // console.log(paymentMethods);
  }, []);

Ответы

▲ 0

Нужно смотреть так:

const fetchPaymentMethods = () => {
  axios.get(
    "http://localhost:3001/api/getPaymentMethods"
  ).then(({ data }) => console.log('data:', data)) // then выполнится, если промис завершится успешно
  .catch((err) => console.log('error:', err)) // catch выполнится при ошибке промиса
  console.log("Here");
};
▲ 0

Спасибо за помощь, если кто то будет читать, ошибка была в не в том что код не выполняется а в том что сервер долго отдает данные, и из за этого не грузились они, когда я пробовал сделать запрос на localhost:3001 - на мой сервер, то не выполнялся код, а после того как я выполнил запрос на такой же сервер только на домене все заработало, что означает что дело в моем интернете. Пофиксил я это довольно просто, делать запросы на домен и менять все на сервер - долго по этому я просто в место localhost:3001/api/getData стал писать, мой ip:3001/api/getData

И сработало.