Javascript 如何捕获GetStaticPath中的所有参数

Javascript 如何捕获GetStaticPath中的所有参数,javascript,reactjs,next.js,server-side-rendering,Javascript,Reactjs,Next.js,Server Side Rendering,目前,我正在开发一个应用程序,需要使用以下url预先呈现页面:/challenge/:id/:activeState我做的第一件事是在页面目录中创建一个质询文件夹。在文件夹中,我创建了一个[…slug].tsx文件来捕获剩余的url,到目前为止,很好,我可能有多个具有不同ID的页面,每个页面都有不同的状态,因此我这样做: import React from 'react' import ChallengeLayout from 'components/layouts/challenge-layo

目前,我正在开发一个应用程序,需要使用以下url预先呈现页面:
/challenge/:id/:activeState
我做的第一件事是在
页面
目录中创建一个质询文件夹。在文件夹中,我创建了一个
[…slug].tsx
文件来捕获剩余的url,到目前为止,很好,我可能有多个具有不同ID的页面,每个页面都有不同的状态,因此我这样做:

import React from 'react'
import ChallengeLayout from 'components/layouts/challenge-layout'
import useSWR from 'swr'
import { useRouter } from 'next/router'
import { ChallengeDescription } from 'components/challenge-description/challenge-description'
import { content } from 'data/description-content'

import { getProgram, getPrograms, programEndpoint, getStages } from 'api/api'

const getDataSwr = (endpoint, fetchMethod, initialData) => {
  const result = useSWR(endpoint, fetchMethod, { initialData: initialData })
  return result.data
}

const ChallengePage: any = ({ program }) => {
  const router = useRouter()

  const programData = getDataSwr(programEndpoint(router.query.slug[0]), getProgram, program)

  return (
    <ChallengeLayout program={programData}>
      <ChallengeDescription content={content} />
    </ChallengeLayout>
  )
}

export async function getStaticPaths() {
  const response: any = await getPrograms()

  const paths = response.results.map(async result => {
    const stagesResponse: any = await getStages(result.id)
    const stages = stagesResponse.map(stage => stage.id)
    return { params: { slug: result.id.toString(), another: 'asd' } }
  })

  return { paths, fallback: false }
}

export async function getStaticProps({ params }) {
  const res = await getProgram(params.slug)

  return { props: { program: res }, revalidate: 1 }
}

export default ChallengePage
首先,我获取所有程序,从中提取每个id,因此基本上基于程序显示一个页面,然后对于特定程序的每个阶段,我需要为每个阶段名称创建一个新页面

有什么帮助吗

目前我收到了以下错误:

中未提供作为数组的必需参数(slug) GetStaticPath for/challenge/[…slug]


明白了吗?我也有同样的问题
export async function getStaticPaths() {
  const response: any = await getPrograms()

  const paths = response.results.map(async result => {
    const stagesResponse: any = await getStages(result.id)
    const stages = stagesResponse.map(stage => stage.id)
    return { params: { slug: result.id.toString(), ...stage.name } }
  })

  return { paths, fallback: false }
}