Considerando lo siguiente:
const [searchParams, setSearchParams] = useSearchParams(); console.log(searchParams.toString()); console.log(typeof searchParams); console.log(Object.values(searchParams)); Y pasando la URL http://localhost:3000/client-data?task=test
Esto registra:
task=test (La cadena del objeto, comprensible)
object (sabemos que es de tipo objeto y tiene algunos pares de valores clave de pruebas anteriores)
[] (¿Por qué no obtenemos claves/valores de Object.keys(), etc.?)
¿Por qué no obtenemos ninguna clave/valor de Object.keys(), etc.?
Los valores/clave de los parámetros de búsqueda no se exponen como propiedades propias de la instancia del objeto. No pueden ser. Considera lo siguiente
const params = new URLSearchParams("a=1&get=2"); console.log(params.a); console.log(params.get); console.log(params.get("a")); console.log(params.get("get")); Si params.a le dio el valor "1" , entonces params.get también debería darle "2" . Sin embargo, eso significa que sobrescribiría el método .get() . Y si eso sucediera, entonces params.get("a") nunca funcionaría.