Me doy cuenta de que recuperar parámetros de búsqueda de la URL es una pregunta frecuente, pero tengo un problema con el uso de URLSearchParams(window.location.search) porque creo que está buscando un ? y mi url contiene & como separadores entre valores.
mi url se verá algo como esto
http://localhost:8080/monitor/patientName=Courtney+Patient&pageSize=50
Mi objetivo es extraer los parámetros de búsqueda en la URL y agregarlos al estado de mi componente en carga. Entonces, estoy leyendo la URL completa y dividiéndola en / esto me da una matriz que se parece a esto:
const queryString = window.location.pathname.split("/")[2] const queries = queryString.split("&") where queries returns: ["patientName=Courtney+Patient","pageSize=50"] Espero recorrer mi estado predeterminado y si queries contienen, digamos nombre del patientName , el valor se reemplazará con el valor contenido en la URL.
Pero no estoy seguro de cómo acceder a las claves con diferentes longitudes y compararlas con las claves de los estados predeterminados. Me pregunto si hay una manera de obtener las claves dentro de la URL sin usar .split("") una y otra vez.
Creo que una cadena de consulta válida requiere un ? antes del nombre del primer parámetro.
Creo que sería mejor evitar usar + ya que podría ser un poco confuso.
Entonces, creo que su URL debería verse así: http://localhost:8080/monitor/?patientName=Courtney&pageSize=50
Ahora window.location.search le dará patientName=Courtney&pageSize=50
Para obtener los valores de los parámetros nombre del paciente y tamaño de la página, puede usar este código:
const params = new URLSearchParams(window.location.search); for (const [key, value] of params){ console.log(key, ': ', value); }Esto se demuestra en el fragmento a continuación, donde sustituí window.location.search por 'patientName=Courtney&pageSize=50' porque el objeto de la ventana no está disponible para mí en el contexto del fragmento:
const params = new URLSearchParams('patientName=Courtney&pageSize=50'); for (const [key, value] of params){ console.log(key, ': ', value); }Espero que esto ayude.