@Evgeii

Как отобразить состояния уже с загруженными данными в react/next?

Добрый день. Подскажите пожалуйста как я могу сразу при загрузке страницы получить в состоянии уже данные с сервера что бы сразу вставлять их в рендер?
Сейчас у меня получается что данные приходят, но в момент рендера страницы их еще нету в состоянии и вылезает ошибка undefined.
я бы мог сделал проверку что то вроде
const [data,setData] = useState(false)
 {data && (
      <h1>{data.fields.title}</h1>
  )}

Но как лучше обработать будет?

import React, {FC, useEffect, useState} from 'react';
import style from './MainTop.module.scss'
import Fade from 'react-reveal';
import Pulse from 'react-reveal/Pulse';
import {GetStaticProps} from "next";
import client from "../../../contentful/index";


const MainTop:FC = () => {
    const [data,setData] = useState({})
    useEffect(() => {
        client.getEntries({content_type: 'home'})
            .then(res => setData(res.items[0]))
    }, [setData])
    return (
        <div className={style.main__logo}>
            <div className={`${style['main__logo-container']} ${style.container}`}>
                <div className={style['main__logo-logo']}>
                    <Fade right duration={3000}>
                        <div>
                            <Pulse forever duration={5000}>
                                <h1>{data.fields.title}</h1>
                            </Pulse>
                        </div>
                    </Fade>
                </div>
            </div>
        </div>
    );
};
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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