Javascript 只有在预定义getStaticPath时才会调用getStaticProps

Javascript 只有在预定义getStaticPath时才会调用getStaticProps,javascript,reactjs,next.js,getstaticprops,getstaticpaths,Javascript,Reactjs,Next.js,Getstaticprops,Getstaticpaths,上面是文件夹结构,而我的意图是使用[…form].tsx来处理来自以下方面的请求: /company/add和/company/edit/ 表单有一些在构建时需要的静态道具,比如地址类型,这些道具在getStaticProps中获取,以便在所有表单上静态可用(添加或编辑) 我没有任何问题访问/company/add,因为它是静态生成的,但是问题是,调用/company/edit/失败,因为没有调用getStaticProps,因此地址类型是未定义的,页面需要地址类型和从getStaticProp

上面是文件夹结构,而我的意图是使用
[…form].tsx
来处理来自以下方面的请求:

/company/add
/company/edit/

表单有一些在构建时需要的静态道具,比如地址类型,这些道具在getStaticProps中获取,以便在所有表单上静态可用(添加或编辑)

我没有任何问题访问
/company/add
,因为它是静态生成的,但是问题是,调用
/company/edit/
失败,因为没有调用
getStaticProps
,因此
地址类型
未定义的
,页面需要
地址类型
和从
getStaticProps()
中的axios调用返回的其他道具才能正确呈现


您对最佳方法的建议将不胜感激,我真的希望使用相同的文件进行添加/编辑,因为它是一个带有大量验证检查的复杂表单,因此我不想重复代码。

我刚刚发现这是一个已知问题,并且仍然开放了将近一年,因此,在找到最终解决方案之前,我并不期待任何答案。现在,我将寻找最好的工作
--src
  --pages
    --company
      [...form].tsx
      list.tsx
//[...form].tsx

export default function CompanyForm({ADDRESS_TYPE, STATES}: {ADDRESS_TYPE: string[][], STATES: {[key:string]: string}}){
  const router = useRouter();
  console.log("----------Company Form------------")
  console.log(router.query)
  console.log(ADDRESS_TYPE)
  ............
}

export async function getStaticProps(context) {
  console.log("---------------- getStaticProps ----------------")
  console.log(context)
  try {
     const res = await axios.get(`${UTILITIES_EP}?list=address_type,states`);
     return {
       props: res.data,
       revalidate: 60,
     }
  } catch (err) {
    console.log("****** res Error *****", err)
    return {
      props: {},
      revalidate: 10
    }
  }
}


export async function getStaticPaths() {
  console.log("---------------- getStaticPaths ----------------")
  return {
    paths: [
      {params: {form: ['add']}},
      //{params: {form: ['edit', 'id']}},  id need to be dynamic
      ],
    fallback: true
  };
}