Ошибка ввода при интеграции API Strapi на мой веб-сайт?

#javascript #typescript #next.js #typeerror #strapi

Вопрос:

Я работаю над страницей блога для своего веб-сайта, которая основана на Next.js, написанный на машинописном тексте и использующий Strapi в качестве API CMS.

 System Information
Strapi Version: 3.6.2
Operating System: Linux
Database: PostgreSQL
Node Version: >=10.16.0 <=14.x.x
NPM Version: >=6.0.0
Yarn Version: 1.22.10
 

Следующий фрагмент кода из моего интерфейса выдает мне ошибку сервера, в которой говорится, что TypeError: posts.map не является функцией, о которой я понятия не имею, почему.

 type BlogPageProps = {
  posts: PostData[];
};

const BlogPage = ({ posts }: BlogPageProps) => {
  useEffect(() => {
    AOS.init({ duration: 700 });
  }, []);

  return (
    <>
      <SEO title={`Blog | ${SITE_NAME}`} />

      <AnimationContainer animation="appearFromAbove">
        {posts.map((post) => (
          <PostCard effect="fade-up" key={post.id} post={post} />
        ))}
      </AnimationContainer>
    </>
  );
};

export default BlogPage;
 

postData [] — это только тип, состоящий из следующих параметров :

 export type PostData = {
  id: PostID;
  title: string;
  content: string;
  slug: string;
  author: PostAuthor;
  category: PostCategory;
  created_by: PostCreatedBy;
  updated_by: PostCreatedBy;
  created_at: string;
  updated_at: string;
  cover: PostCover;
};
 

Я думаю, что это должно быть как-то связано с самим API, а не с кодом из интерфейсной разработки, потому что, когда я изменяю API_URL (в настоящее время установлено значение https://major-harpia.herokuapp.com/) для того, который друг использует в качестве своего API, он работает нормально.

Более конкретно, я подозреваю следующие причины :

PostgreSQL — Я не уверен, правильно ли я настроил его на heroku, потому что все, что я сделал, это установил дополнительный токен JWT-С тех пор, как я клонировал репозиторий у кого — то другого, я не создал собственный токен JWT для использования в API.

Пожалуйста, не мог бы кто-нибудь прояснить этот вопрос? Это сводит меня с ума.