Вы всегда можете выполнить проверку перед рендерингом и визуализировать индикатор резервной загрузки.
return (
post ?
<div className={"section"}>
<div className={"container"}>
<div className={"first-post"}>
<div className={"first-post-title"}>
<h2>
{post.title.length > 20
? post.title.slice(0, 85) + " ..."
: post.title}
</h2>
</div>
</div>
</div>
</div>
: "loading..."
)
Приведенный выше код загружает сообщение, только если оно определено, иначе возвращается «загрузка».
В хуке useEffect
вы можете вызвать API и установить состояние.
useEffect(() => {
fetch("URL")
.then(response => response.json())
.then(json => setPost(json));
}, [])
Как только вызов API завершится, состояние изменится, и компонент повторно выполнит рендеринг с данными поста.
Пример https://stackblitz.com/edit/react-htofev