首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:在/post/[Slug]的getStaticPaths中没有以字符串形式提供所需的参数(段塞)

错误:在/post/[Slug]的getStaticPaths中没有以字符串形式提供所需的参数(段塞)
EN

Stack Overflow用户
提问于 2021-12-07 18:33:30
回答 1查看 548关注 0票数 0

嘿,我开始了一个关于Build and Deploy THE BEST Modern Blog App with React | GraphQL, NextJS, Tailwind CSS的教程,它向我展示了这个错误,我不知道如何修复它,它只向我展示了当我试图输入post时,这是一个错误:

错误:在getStaticPaths中没有为/post/Slug提供所需的参数(段塞)

这是代码:

代码语言:javascript
复制
import React from 'react';
import { useRouter } from 'next/router';

import { PostDetail, Categories, PostWidget, Author, Comments, CommentsForm, Loader } from '../../components';
import { getPosts, getPostDetails } from '../../services';


const PostDetails = ({post}) => {
  
  console.log({post});

  if (router.isFallback) {
    return <Loader />;
  }

  return (
    <>
      <div className="container mx-auto px-10 mb-8">
        <div className="grid grid-cols-1 lg:grid-cols-12 gap-12">
          <div className="col-span-1 lg:col-span-8">
            <PostDetail post={post} />
            <Author author={post.author} />
            
            <CommentsForm slug={post.slug} />
            <Comments slug={post.slug} />
          </div>
          <div className="col-span-1 lg:col-span-4">
            <div className="relative lg:sticky top-8">
              <PostWidget slug={String(post.slug)} categories={post.categories.map((category) => String(category.slug))} />
              <Categories />
            </div>
          </div>
        </div>
      </div>
    </>
  );
};
export default PostDetails;


export async function getStaticProps({ params }) {
  const data = await getPostDetails(String(params.slug));
  return {
    props: {
      post: data,
    },
  };
}


export async function getStaticPaths() {
  const posts = await getPosts();
  return {
    paths: posts.map(({ node: { slug } }) => ({ params: {slug}})),
    fallback: true,
  };
}

EN

回答 1

Stack Overflow用户

发布于 2022-03-01 03:17:20

错误在这里

代码语言:javascript
复制
  paths: posts.map(({ node: { slug } }) => ({ params: {slug}})),

如果您这样使用,您的动态页面名应该是我[slug]。例如,如果您的动态页面是[id].js,那么您应该拥有

代码语言:javascript
复制
   paths: posts.map(({ node: { slug } }) => ({ params: {id}})),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70265304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档