Next.js 静态站点的动态路由?

Next.js 静态站点的动态路由?,next.js,Next.js,我打算使用Airtable作为一个简单的数据库,将我制作的项目添加到我的投资组合网站中 我已经成功地获取并显示了项目,并将其发送到每个项目ID。但是,我仍然无法确定如何从该特定项目中获取其他数据并进行显示。静态地 从Airtable功能获取数据: export async function getProjectsData() { const res = await fetch( `https://api.airtable.com/v0/${BASE_KEY}/Projects?api

我打算使用Airtable作为一个简单的数据库,将我制作的项目添加到我的投资组合网站中

我已经成功地获取并显示了项目,并将其发送到每个项目ID。但是,我仍然无法确定如何从该特定项目中获取其他数据并进行显示。静态地

从Airtable功能获取数据:

export async function getProjectsData() {
  const res = await fetch(
    `https://api.airtable.com/v0/${BASE_KEY}/Projects?api_key=${API_KEY}`
  );
  const airtable = await res.json();

  const projectData = await airtable.records
    .map(record => {
      return {
        name: record.fields.Name,
        notes: record.fields.Notes,
        siteURL: record.fields.SiteURL,
        codeURL: record.fields.CodeURL,
        screenshots: record.fields.Screenshots.map(img => img.url),
        tech: record.fields.Tech,
        id: record.fields.ID,
      };
    })
    .sort((a, b) => {
      if (a.id < b.id) {
        return -1;
      } else return 1;
    });
  return projectData;
}

我的问题是,我希望使用动态路由和SSG在项目页面上显示其余的项目数据。我已经看过文件了


任何帮助都将不胜感激

你想让
[id].js
正常工作吗?您是否已将
getStaticProps
添加到
[id].js
以使用项目id(即
context.params.id
)查询Airtable?(
context
getStaticProps
的参数)类似于上面的注释:[id].js-inside-pages/应该只用于数据获取,我会将我的项目页面模板存储在components/中。在[id].js中,您将有一个getStaticProps,在其中您将从参数中读取项目的id。然后,您可以创建一个与getProjects类似的函数,该函数使用项目id获取项目数据。您是否要让
[id].js
正常工作?您是否已将
getStaticProps
添加到
[id].js
以使用项目id(即
context.params.id
)查询Airtable?(
context
getStaticProps
的参数)类似于上面的注释:[id].js-inside-pages/应该只用于数据获取,我会将我的项目页面模板存储在components/中。在[id].js中,您将有一个getStaticProps,在其中您将从参数中读取项目的id。然后,您可以创建一个与getProjects类似的函数,该函数使用项目id获取项目数据
          <ul>
            {projects.map((project, index) => (
              <li key={index}>
                <h3>{project.name}</h3>
                <Link href='/projects/[id]' as={`/projects/${project.id}`}>
                  <a>Find out more</a>
                </Link>
              </li>
            ))}
          </ul>
        </div>
      </main>
    </div>
  );
}
export async function getStaticProps() {
  const projects = await getProjectsData();

  return {
    props: {
      projects,
    },
  };
}

export default function Project() {
  return (
    <div>
      <h1>This is a project</h1>
      <Link href='/'>
        <a>Home</a>
      </Link>
    </div>
  );
}