En nuestra aplicación NextJS tenemos una URL que se alimenta con varias cadenas de consulta.
Sin embargo, con algunas cadenas de consulta, tenemos el problema de que se muestran en forma codificada. Por ejemplo como este:
http://localhost:8080/my-app/test-app?project=project%3Aone&project=project%3Atwo Como puede ver, los dos puntos se reemplazan con %CA .
Sé que este puede ser un comportamiento predeterminado, pero necesito los dos puntos en la URL.
¿Hay alguna manera de que pueda conseguir esto? Así que necesito URL arriba como:
http://localhost:8080/my-app/test-app?project=project:one&project=project:two Estamos usando URLSearchParams() así:
const constructQueryString = (params: any) => { const searchParams = new URLSearchParams(); const projects = params.project.split(','); projects.forEach((p) => { urlSearchParams.append('project', p); }); return searchParams.toString(); };Estos son códigos de escape para caracteres especiales en la URL que son necesarios y no se pueden evitar. Además, no es necesario que utilice URLSearchParams. Simplemente use router.query le dará consulta y router.pathname para la ruta ( /my-app/test-app ) en nextJS
Use la función global decodeURIComponent en Javascript
const decodedPath = decodeURIComponent("http://localhost:8080/my-app/test-app?project=project%3Aone&project=project%3Atwo")El resultado es lo que desea de la siguiente manera:
http://localhost:8080/my-app/test-app?project=project:one&project=project:two