Ошибка getStaticPaths может использоваться только с динамическими страницами, но не с помощью Next JS.

Я хочу использовать getStaticPaths для своих сообщений в блоге с динамическими маршрутами, но при сборке получаю сообщение об ошибке.

Моя папка с динамическими маршрутами:

страницы / статьи / [категория] / [ярлык] .js

Навигация по моим ссылкам:

    <Link href={`/article/${category}/${slug}`} passHref>
      <Card>
        ...some data
      </Card>
    <Link />

Мои getStaticPaths:

export async function getStaticPaths () {
   
  // retrieve data from cms

  const data = await getAllPreviewPosts()

  // generate the paths

  const paths = data.map( ({ fields: { slug , stackName } }) => ({ 
   params: { category: stackName, slug: slug } 
   }))

  return {
     paths, 
     fallback: false
  }   
}

export async function getStaticProps () {
 /* ... get data from cms */
}

Но когда я запускаю npm run build, я получаю такую ​​ошибку:

Error: getStaticPaths can only be used with dynamic pages, not '/'.

person Entre Accolades    schedule 29.04.2021    source источник
comment
В каком файле getStaticPaths?   -  person Eric Burel    schedule 29.04.2021


Ответы (1)


getStaticPaths определяет, какие страницы должен отображать next.js при экспорте. Он используется для генерации всех доступных динамических маршрутов. Вы не можете использовать эти данные на самой странице.

Чтобы получить все доступные категории и ярлыки для использования в вашем компоненте навигации, вам необходимо использовать _ 2_, чтобы загрузить данные на страницу и передать их в компонент навигации в качестве свойств.

Вы можете найти пример для этого здесь: https://github.com/vercel/next.js/blob/master/examples/with-static-export/pages/index.js

person arkuuu    schedule 29.04.2021