Tremendo aporte, como se esta uno atento de esas actualizaciones?
Para los que instalaron react-router-dom version 6 el código quedaría así
Gracias por compartirlo, no me aparecía nada porque olvidé colocar los componentes como tales.
Con tu comentario lo pude resolver 👌🏼
Gracias, ya no hace falta poner exact?
Aquí mi página de error 404
Siguiendo el estilo de la pagina, genia!!!
Muy chévere. Tú misma diseñaste la imagen?
Así quedó mi pagina de error 🤗
!404
Me gusta, buen detalle el rebote
Muy chevere, felicitaciones!
Si no te funciona, revisa tu package.json, busca el objeto dependencies y dentro react-router-dom, ahí viene la versión de la librería que instalaste, en mi caso es:
"react-router-dom":"^6.2.1",
Cambios a partir de la versión 6:
Switch deja de funcionar, se sustituye por Routes, cambialo en tu import y en el wrapper:
//Cambia el import:import{BrowserRouter,Routes,Route}from"react-router-dom";//Wrapper:<Routes><Route path="/" element={<Home/>}/></Routes>
Se elimina el uso del atributo exact y se sutituye el atributo component por element.
element recibe la sintaxis de componente, no solo su nombre.
//Con exact y component:<Route exact path="/" component={Home}/>//Con element:<Route path="/" element={<Home/>}/>
Gran aporte.... ¡me has salvado, estoy agradecido!
No me salía nada hasta que intenté las instrucciones que amablemente dejaste por aqui... ¡GRACIAS!
Aqui esta mi 404 super Profesional
jajajaj buena!
que genio jajajaja
Realice algo simple
NotFound.jsx
<div><h1 className="title-404">404</h2><p className="text-404">Oops!Pagina no encontrada.</p><a className="button-404" href="#">Regrese a la página inicial, es mejor.</a></div>
Hace falta agregar path="*" al ultimo Router para que pueda renderizar el componente NotFound 👍
Not working anymore
Me tomo un tiempo conectar el rompecabezas con todas las actualziaciones que han ocurrido, aqui dejo un resumen:.
Ano 2022:
Hace unas semanas salio React18
React router dom esta en su version 6 RRD6
.
Entonces:
En el archivo index.js
importReactfrom'react';importReactDOMfrom'react-dom';importAppfrom'./routes/App';// ESTO YA NO FUNCIONA// ReactDOM.render(// <App />,// document.getElementById('root')// );//AHORA ES ASIimport{ createRoot }from'react-dom/client';const container =document.getElementById('root');const root =createRoot(container);root.render(<App tab="home"/>);
Entonces verificar que el <Layout> esta afuera de <Routes> para que no interfiera con las rutas. Como muestro en el codigo de ejemplo.
.
Bueno y por otro lado, lo del tab="home" es solo un ejemplo, el codigo lo saque de la guia de actualizacion de react 18 y asi estaba escrito. Realmente eso no lo necesitamos, olvide borarlo.
.
Esto lo que esta haciendo es pasarle por props al componente App el valor home
Aunque la documentacion no esta clara, creo que esto se usa para cuando usemos navegacion por tabs, es util cuando se hacen aplicaciones para movile.
Utilizando Link de react-router-dom
importReactfrom'react';import{Link}from'react-router-dom';import'../styles/NotFound.scss';exportconstNotFound=()=>{return(<div className="NotFound"><img
src="https://i.pinimg.com/originals/86/41/80/86418032b715698a4dfa6684b50c12af.gif" alt=""/><Link to="/"><h2>Return to Home</h2></Link></div>);};
Así quedó mi página NotFound:
Está increíble jajajaja
Asi quedo el reto de la pagina de error 404
Y al hacer Hover al enlace el fantasmita se anima..!
Trate de usar los colores que tiene el proyecto para no afectar o que no se vea un poco extraño..!
muy bueno
Encontré este recurso en linea para agragar un 404 más animado, aunque si no tienes mucha destreza con html y css es recomendable hacerla desde cero para adquirir agilidad.
Bueno, por lo que averigue historyApiFallback conecta nuestra app con html5 History api, la cual nos ayuda a manejar el historial de navegacion y a reconocer las rutas que estamos manejando.
Pero historyApiFallback es una librería aparte que fue creada para solucionar ciertos problemas de usabilidad que traía por defecto History API, que no llegué a entender del todo.
Si dejamos la opcion por defecto (false) podemos conectarnos al home, pero no va a reconocer las demás rutas que usemos, por lo que es de vital importancia tener esta opcion activada
Si saben de esta API o librería y quieren ayudarme a aclarar cómo es su funcionamiento exacto les estaré agradecido
Curso bastante desactualizado, si no es por los comentarios uno no sabria ni que hacer, muchas cosas mal, en una clase pone el devServer elige puerto 3005 y en otra clase no lo tiene puesto, cosa q da problemas y si uno no se entera q es eso se vuelve loco, este curso un poco disapointed, oscar suele hacer buenos cursos..
Concuerdo completamente contigo.
Para los que les de este error
Probablemente cuando descarguen react-router-dom les dé una versión muy nueva y Switch no se exporta de la misma manera en versiones nuevas. Lo que yo hice para solucionar el error fue que cambie la versión de la dependencia con el siguiente comando.
npm install react-router-dom@5.2.0
La razón de que use esa versión es porque es la versión que uitiliza el maestro dentro de este curso.
Me paso igual, yo modifique la version en package.json y volvi a ejecutar npm install
bro una pregunta queria hacerlo igual que tú cambiar el background color en scss de not found pero se me cambia el background color de todo el proyecto osea todas las otras paginas ati te pasa eso ?
cri cri cri
¿que diferencia hay entre el directorio "pages" y el directorio "containers"?
En el archivo de App se usa el Home y NotFound que están en pages, y a su vez se usa Login y RecoveryPassword que están en containers :/
Containers: Lo usas para definir secciones principales dentro de la App. Usa la misma lógica que usabas para estructurar Html para identificarlas. Por ejemplo la sección donde vez todas las imágenes para hacer la compra es un container por que es principal.
Components: Son las secciones o elementos mas pequeños y que puedes usar en diferentes partes de la app. Por ejemplo, cada card de un producto es un componente. Lo puedes re usar múltiples veces pero en si no es una sección completa de tu App.
Pages: Puedes verlas como una vista general de toda tu App. En este caso el Home es repetitivo para múltiples vistas de la App, lo sabes por que su diseño base se repite. Yo lo veo como el "background" donde acomodas todos los demás elementos. Por lo tanto lo defines como una pagina. El NotFound es otra pagina porque la puedes definir con un diseño diferente. Por ejemplo, al día de hoy el 404 de platzi es un astronauta. Si bien su diseño se relaciona con la pagina principal "Home", son independientes en como se ordenan.
containers sería entonces divs o fragments o headers o similares sobre el documento?