Обработка ошибок в React

Делаю список фильмов со сторонним API. Пытаюсь обработать ошибку через блок .catch в ComponentDidMount(), передавая туда функцию onError, но почему-то правильный Alert не выводится на страницу, в чем может быть проблема? Также, для информации, использую сторонние библиотеки для отрисовки лоадера и вывода ошибки (antd).

import React from "react";
import "./MovieItem.css";
import { format } from "date-fns";
import SpinAntItem from "../SpinAntItem";
import ErrorAntItem from "../ErrorAntItem";

export default class MovieItem extends React.Component {

  state = {
    movies: [],
    loading: true,
    error: false,
  };

  async componentDidMount() {
    await fetch('https://api.themoviedb.org/3/search/movie?api_key=fe376611c70e9694e174f7ee3afdb680&quer=return')
          .then(response => response.json())
          .then(res => this.setState({ movies: res.results, loading: false }))
          .catch(this.onError)
  }

  onError = () => {
    this.setState({
      error: true,
      loading: false,
    })
  }

  shortText(movieOverview, maxLength, postfix) {
    const pos = movieOverview.indexOf(' ', maxLength);
    return (pos === -1 ? movieOverview : movieOverview.substring(0, pos) + postfix);
  }

  dateFormatted(releaseDate) {
    const date = new Date(releaseDate)
    return format(date, "MMMM dd, yyyy")
  }

  createElement(movie) {
    const {
      id,
      poster_path,
      original_title,
      release_date,
      genre_ids,
      overview,
    } = movie;

    return (
      <li className="movie-item" key={id}>
        <div className="movie-item-image">
          <img src={`https://image.tmdb.org/t/p/original${poster_path}`} alt="Poster"></img>
        </div>
        <div className="movie-item-description">
          <p className="movie-item-title">{original_title}</p>
          <p className="movie-item-date">{this.dateFormatted(release_date)}</p>
          <div className="movie-item-category">
            <div className="category-item">{genre_ids}</div>
          </div>
          <p className="movie-item-text">{this.shortText(overview, 240, '...')}</p>
        </div>
      </li>
    );
  }

  render() {
    const {movies, loading, error} = this.state;

    const hasData = !(loading || error);
    const errorMessage = error || movies.length === 0 ? <ErrorAntItem /> : null;
    const loadingMessage = loading ? <SpinAntItem /> : null;
    const content = hasData ? movies.map(movie => this.createElement(movie)) : null;

    return (
      <ul className="movies-list">
        {errorMessage}
        {loadingMessage}
        {content}
      </ul>
    );
  }
}

Ответы (0 шт):