¿Alguien puede explicar la diferencia entre
<Route exact path="/" component={Home} />
y
<Route path="/" component={Home} />
No sé el significado de "exacto"
¿Alguien puede explicar la diferencia entre
<Route exact path="/" component={Home} />
y
<Route path="/" component={Home} />
No sé el significado de "exacto"
Respuestas:
En este ejemplo, nada realmente. los
exactparámetro entra en juego cuando tienes múltiples rutas que tienen nombres similares:Por ejemplo, imagine que tenemos un
Userscomponente que muestra una lista de usuarios. También tenemos unCreateUsercomponente que se utiliza para crear usuarios. La url paraCreateUsersdebe estar anidada debajoUsers. Entonces nuestra configuración podría verse así:Ahora el problema aquí, cuando vamos al
http://app.com/usersenrutador, pasará por todas nuestras rutas definidas y devolverá la PRIMERA coincidencia que encuentre. Entonces, en este caso,Usersprimero encontraría la ruta y luego la devolvería. Todo bien.Pero, si fuéramos
http://app.com/users/create, volvería a pasar por todas nuestras rutas definidas y devolvería la PRIMERA coincidencia que encuentre. React router hace una coincidencia parcial, por/userslo que coincide parcialmente/users/create, por lo que devolvería laUsersruta de forma incorrecta .El
exactparámetro deshabilita la coincidencia parcial para una ruta y se asegura de que solo devuelva la ruta si la ruta es una coincidencia EXACTA con la url actual.Entonces, en este caso, debemos agregar
exacta nuestraUsersruta para que solo coincida con/users:Los documentos explican
exacten detalle y dan otros ejemplos.fuente
exactdebería ser el valor predeterminado en mi opinión/admin//usersen el componente Administrador y/admin/users/createen el componente raíz? Actualmente tengo esta situación y laexactsolución típica no funciona correctamente.En resumen, si tiene múltiples rutas definidas para el enrutamiento de su aplicación, encerradas con un
Switchcomponente como este;Luego, debe poner una
exactpalabra clave en la ruta, cuya ruta también está incluida en la ruta de otra ruta. Por ejemplo, la ruta de inicio/se incluye en todas las rutas, por lo que debe tener unaexactpalabra clave para diferenciarla de otras rutas que comienzan con/. La razón también es similar a la/functionsruta. Si desea usar otra ruta de ruta como/functions-detailo/functions/open-doorque incluye/functionsen ella, entonces debe usarlaexactpara la/functionsruta.fuente
Echa un vistazo aquí: https://reacttraining.com/react-router/core/api/Route/exact-bool
exacto: bool
Cuando es verdadero, solo coincidirá si la ruta coincide
location.pathnameexactamente.fuente
La respuesta más corta es
Por favor intente esto.
fuente
exactatributo / accesorio y, por lo tanto, seguramente no es una "respuesta". Debería tratar de abordar la pregunta que realmente se está haciendo en lugar de dar una solución a un problema que no está seguro de que OP realmente tenga.