Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

107
Views
Next.js Enrutamiento dinámico anidado estático con iteración anidada

Suponga que tiene datos de posts y categories de una base de datos de relaciones:

 // category_id on categories.id const posts = [ { id: '1', title: 'dream pc', category_id: '1' }, { id: '2', title: 'my dream house design', category_id: '1' }, { id: '3', title: 'bing chillin', category_id: '2' }, ] const categories = [ { id: '1', name: 'wishlist' }, { id: '2', name: 'favorites' } ]

Este es el formato de mi ruta: /categories/[category]/[page]

Con estructura de directorio de pages/categories/[category]/[page].js .

Entonces producirá estos caminos:

  • /categories/wishlist/1
  • /categories/wishlist/2
  • /categories/favorites/1

Intenté esto pero las paths devolvieron una matriz vacía:

 // pages/categories/[category]/[page].js export async function getStaticPaths() { const paths = [] // I'm using supabase const { data: categories, error } = await supabase.from('categories').select('id, name') categories.forEach(async (c) => { const { data, error, count } = await supabase .from('posts') .select('id', { count: 'exact', head: true }) .eq('category_id', c.id) for (let i = 0; i < count; i++) { // This should push the path params to the paths variable, but it didn't paths.push({ params: { // For simplicity, 1 post per page page: i + 1, categoryId: c.id, category: c.name } }) } }) // It returns an empty array [] console.log(paths) return { paths, fallback: false } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Las llamadas asíncronas no funcionan con Array.forEach , en su lugar uso for (category of categories)

Código de trabajo:

 // pages/categories/[category]/[page].js export async function getStaticPaths() { const paths = [] // I'm using supabase const { data: categories, error } = await supabase.from('categories').select('id, name') // Use for/of instead of forEach for (category of categories) { const { data, error, count } = await supabase .from('posts') .select('id', { count: 'exact', head: true }) .eq('category_id', c.id) for (let i = 0; i < count; i++) { paths.push({ params: { page: (i + 1).toString(), categoryId: category.id, category: category.name } }) } }) return { paths, fallback: false } }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!