Как получить доступ к параметрам в getStaticPaths?

#next.js #getstaticpaths

#javascript #next.js

Вопрос:

У меня есть Next.js приложение и CMS довольны.

Структура файла, соответствующая этому вопросу, выглядит следующим образом:

 pages
-[category]
  -[slug].js
 

Что я хочу сделать, так это получить доступ к значению category, когда пользователь посещает category / slug .

Прямо сейчас я жестко кодирую категорию. Есть ли какой-либо способ получить доступ к категории с помощью параметров?

 const category = 'mains';

export async function getStaticPaths() {
    let data = await client.getEntries({ content_type: category });
    return {
        paths: data.items.map((path) => ({
            params: { category: category, slug: path.fields.slug }
        })),
        fallback: false
    };
}
 

Ответ №1:

getStaticPaths используются для предварительной визуализации путей, то есть перед развертыванием приложения. Вам нужно использовать getStaticProps для рендеринга по требованию, там у вас будет context.params объект со всеми параметрами ( ctx.params.category , ctx.params.slug )