distCom
@distCom
Начинающий программист

Не работает map на полученных данных с сервера, как исправить?

Здравствуйте, не могу разобраться с проблемой, функция map не работает с данными, которые получаю с сервера. Я пишу на React, использую для получения данных axios и заворачиваю в useEffect, чтобы данные подгружались во время рендера компонента. По идеи данные грузятся нормально, получалось вывести, значит не в map проблема 617e4d5872e85732371479.jpeg
Но после перезагрузки выдает ошибку 617e4d910de9f244316975.jpeg Это, наверное, потому что данные не успевают загрузиться с сервера, чтобы начать перебор, но я не понимаю почему.. Вроде useEffect и async await должны решать эту проблему, код же должен дождаться этих данных, а потом уже работать с ними, так в чем же проблема? Я не понимаю как это исправить, в другом компоненте у меня такой же код, но там все работает хорошо, вот код
const [fullPost, setFullPost] = useState([]);
  const { id } = useParams();

  useEffect(() => {
    const fetchFullPost = async () => {
      const res = await axios.get('/posts/' + id);
      setFullPost(res.data);
    };
    fetchFullPost();
  }, [id]);

  const cat = fullPost.categories.map((e) => e.name);
  const body = fullPost.body.map((e) => e.blocks)[0];
  • Вопрос задан
  • 381 просмотр
Решения вопроса 1
distCom
@distCom Автор вопроса
Начинающий программист
Я решил это условным рендерингом, вроде бы работает
{fullPost.length === 0 ? (
        'Загружается'
      ) : (
        <FullPostContent fullPost={fullPost} />
      )}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега React
useState({categories: [], body: []});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы