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

189
Views
¿Cómo obtener todos los parámetros de consulta usando React-Router-DOM v6 `useSearchParams` sin especificar la clave?

Actualmente estoy trabajando en un proyecto React con react-router-dom v6 y quiero obtener todos los parámetros de consulta.

 http://localhost:3000/users?page=5&pageSize=25

Quiero obtener tanto la página como el tamaño de la página. Sé que podemos usar este código a continuación para obtener parámetros con las claves.

 import React from 'react' import {useSearchParams} from "react-router-dom"; const Users = () => { const [searchParams, setSearchParams] = useSearchParams(); const page = searchParams.get('page') const pageSize = searchParams.get('pageSize') return (<h1>page: {page}, pageSize: {pageSize}</h1>) }

Pero luego traté de obtener todos los parámetros sin especificar las claves usando searchparams.getAll() pero no funcionó y la aplicación React mostró solo una página en blanco.

Aquí está mi código que usé para obtener todos los parámetros:

 import React from 'react' import {useSearchParams} from "react-router-dom"; const Users = () => { const [searchParams, setSearchParams] = useSearchParams(); const params = searchParams.getAll(); console.log(params) return (<h1>params</h1>) }

¿Cometí algún error ahí?

Estas son mis dependencias en package.json :

 "dependencies": { ..., "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", ..., },
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

URLSearchParams.getAll todavía toma una clave y devuelve una matriz de todos los valores para esa clave.

 let url = new URL('https://example.com?foo=1&bar=2'); let params = new URLSearchParams(url.search); //Add a second foo parameter. params.append('foo', 4); console.log(params.getAll('foo')) //Prints ["1","4"].

Podría usar URLSearchParams.entries para devolver un iterador que se puede usar para insertar entradas en una matriz de pares clave/valor.

Ejemplo:

 const Users = () => { const [searchParams, setSearchParams] = useSearchParams(); const params = []; for(let entry of searchParams.entries()) { params.push(entry); } console.log(params); // [["page", 5], ["pageSize", 25]] return ( <> <h1>Params</h1> <ul> {params.map(([key, value]) => ( <li key={key}>{key} - {value}</li> ))} </ul> </> ); }

También puede usar URLSearchParams.forEach para iterar y capturar los pares clave/valor.

Ejemplo:

 const Users = () => { const [searchParams, setSearchParams] = useSearchParams(); const params = []; searchParams.forEach((key, value) => { params.push([key, value]); }); console.log(params); // [["page", 5], ["pageSize", 25]] return ( <> <h1>Params</h1> <ul> {params.map(([key, value]) => ( <li key={key}>{key} - {value}</li> ))} </ul> </> ); }

Con el .entries for-loop o .forEach , podría "reducir" a un objeto.

 const params = {}; for(let [key, value] of searchParams.entries()) { params[key] = value; } -- or -- searchParams.forEach((key, value) => { params[key] = value; }); console.log(params); // { page: 5, pageSize: 25 } ... params.page; // 5 params.pageSize; // 25

Dicho todo esto, probablemente sea mejor usar el método .get y obtener explícitamente los parámetros queryString específicos.

about 4 years ago · Santiago Trujillo 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!