mi URL actual es /foo y quiero agregarle una cadena de consulta, es decir, /foo?date=2022-02-15
La forma en que lo hice es location.search = queryString y funciona, pero da como resultado una recarga completa. Quería usar la API de historial de react-router para poder evitar la recarga completa.
Pero history.push reemplazará toda la ruta /foo con date=2022-02-15 (por lo que la URL será date=2022-02-15 en lugar de /foo?date=2022-02-15 ) ya que no ?date=2022-02-15 a la ruta actual /foo como lo haría location.search . Entonces, ¿hay alguna manera de usar la API de history para lograr el mismo comportamiento?
Puede obtener el nombre de pathname actual del objeto de location de la ruta actual que se está comparando y representando.
Ejemplo:
const location = useRouteMatch(); const queryString = "date=2022-02-15"; ... // as a string history.push(`${location.pathname}?${queryString}`); // or as an object history.push({ pathname: location.pathname, search: `?${queryString}`, });