Привет, вы всегда можете проверить, были ли загружены статьи, прежде чем использовать его следующим образом:
<img src={articles && articles[0].urlToImage} alt='main-headline' height='400px' width='90%'/>
Оператор '&&' проверяет, существует ли он, прежде чем пытаться загрузить его. Недостатком является то, что у вас могут быть некоторые элементы загрузки вашей страницы, пока изображение остается пустым.
Другой вариант - иметь состояние isFetched, которое переключается в true при загрузке данных, и вы рендерите весь компонент условно, еслиданные загружены.
const[isFetched, setIsFetched] = useState(false)
const getData = async () => {
const response = await axios
.get(url)
.then(()=> {
setIsFetched(true)
//write remainder of your function
};
getData();
}, []);
return (!isFetched ? 'data loading' :
<div>Your div component</div>)