Как отображать ошибку на странице React
Как сделать так, что бы заместо ошибки в виде текста 'произошла ошибка!' у нас брались реальные данные ошибки через catch и отображались на странцие. Как в console.error
import { useEffect, useState } from 'react';
import style from './Statistic.module.css';
function Statistic() {
const [status, setStatus] = useState('');
const [error, setError] = useState(false);
useEffect(() => {
fetch('https://burtovoy.github.io/statistic.json')
.then((response) => {
if (!response.ok) {
throw new Error(`Network response was not ok ${response.statusText}`);
}
return response.json();
})
.then((data) => {
console.log(data.statistic)
setStatus(data.statistic);
})
.catch((error) => {
console.error('Fetch', error);
setError(true);
})
}, [])
return (
<>
{error == false && <section>
<div className={style.users}>
<div className="users_block">
<div className="users_num">
<p className="number" id="usersRegister">{status.usersRegistr}</p>
<div className="users_text">
<p>Пользователей<br />зарегестрировано</p>
</div>
</div>
</div>
<div className="users_block">
<div className="users_num">
<p className="number" id="writeMessages">{status.writMessages}</p>
<div className="users_text">
<p>Сообщений<br />написано</p>
</div>
</div>
</div>
<div className="users_block">
<div className="users_num">
<p className="number" id="writeToday">{status.writToday}</p>
<div className="users_text">
<p>Написано<br />сегодня</p>
</div>
</div>
</div>
</div>
</section>}
{error && <section>
<p>Произошла ошибка!</p>
</section>}
</>
);
}
export default Statistic;
Источник: Stack Overflow на русском