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

293
Views
¿Cómo puedo usar una matriz en el enrutamiento con react-router?

Este es mi enrutamiento con patrón regex por react-router. El componente ItemList aparece cuando la URL es /categories/cat1 o /categories/cat2 o /categories/cat3 o /categories/cat4 o /categories/cat5 o /categories/cat6 ; de lo contrario, aparece el componente NotFound .

 function App() { return ( <Router> <Header /> <Container > <Switch> <Route exact path='/' component={Home} /> <Route path='/categories/(cat1|cat2|cat3|cat4|cat5|cat6)' component={ItemList} /> <Route path="*" component={NotFound} /> </Switch> </Container> <Footer /> </Router> ); }

Quiero usar una matriz dinámica para el enrutamiento de ItemList de esta manera:

 const itemCategories = ['cat1','cat2','cat3','cat4','cat5','cat6'];

en este camino:

 path='/categories/(cat1|cat2|cat3|cat4|cat5|cat6)'
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Si entiendo su pregunta, desea generar una ruta que maneje múltiples categorías.

  1. Renderice una sola ruta con un parámetro de coincidencia. Esto le permite manejar dinámicamente cualquier valor de categoría.

     <Route path='/categories/:category' component={itemList} />
  2. Renderice una sola ruta con una matriz de ruta. Esto le permite manejar categorías específicamente permitidas. Esto da como resultado path={["/categories/cat1", "/categories/cat2", ... , "/categories/cat6"]} .

     <Route path={itemCategories.map(cat => `/categories/${cat}`)} component={itemList} />
  3. Representa una ruta única con una matriz de ruta y un mapa en la expresión regular. Esto da como resultado path='/categories/(cat1|cat2|cat3|cat4|cat5|cat6)' como estabas buscando.

     <Route path={`/categories/(${itemCategories.map((cat) => cat).join("|")})`} component={ItemList} />
  4. Renderice una ruta para cada categoría. Esto le permite manejar categorías permitidas específicamente, pero básicamente duplica el componente Route .

     { itemCategories.map(cat => ( <Route key={cat} path={`/categories/${cat}`} component={itemList} /> )) }

Quiero enrutar solo para cat1 a cat6. Si el usuario escribe algo más, como categorías/cat7, aparecerá la página notFound.

Para esto sugeriría la opción 2 o 3.

about 4 years ago · Juan Pablo Isaza Report

0

Puede usar : para configurarlo en una ruta dinámica como esta:

 <Route path="/categories/:cat" component={itemList} />

y luego renderizar la ruta de acuerdo con la elección de los usuarios

O puede mapear las rutas así:

 {itemCategories.map(route => { return <Route path=`/categories/${route}}` component={itemList}/> }}

No estoy seguro de lo que quieres, así que di ambas opciones.

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!