Estoy tratando de mostrar mi componente 'Inicio' en mi proyecto React a través de react-router-dom. Pensé que hice bien su tono, no tengo un error de tiempo de compilación, pero el componente Inicio simplemente no aparece. Tienes una idea ?
aplicación.js:
import Navbar from "./Components/Navbar"; import { BrowserRouter, Routes, Route } from "react-router-dom"; import Home from "./Pages/Home"; function App() { return ( <div className="App"> <BrowserRouter> <Navbar /> <Routes> <Route pathname="/" element={<Home />}> </Route> </Routes> </BrowserRouter> </div> ); } export default App;Inicio.js:
import React from "react"; import banner from "../assets/banner.jpg"; import {Link} from 'react-router-dom'; import '../Styles/Home.css'; function Home(){ return ( <div className="home" style={{ backgroundImage: `url(${banner})` }}> <div className="headerContainer"> <h1>Food Corner</h1> <p>AMERICAN FOOD AT A CLICK.</p> <Link> <button> Order Now </button> </Link> </div> </div> ); } export default Home;Si este es Router Router v6 (asumiendo que está usando <Routes>...</Routes> ), el nombre de la propiedad es "ruta" y no "nombre de ruta"
Así que esto:
<Route pathname="/" element={<Home />}> </Route>Debería ser esto:
<Route path="/" element={<Home />}> </Route>Aquí están los documentos para React-Router-Dom v6 (que es diferente a los documentos v5): Aquí
También debe cambiar sus importaciones de react-router-dom. Debe importar BrowserRouter como enrutador como:
import { BrowserRouter as Router } from 'react-router-dom'Tienes un par de problemas menores:
El componente Route utiliza una propiedad de path , no una propiedad de nombre de pathname . Sin prop de path , no hay ruta coincidente y Home no se representa.
<Route path="/" element={<Home />} /> Al Link le falta aquello a lo que se vincula, es decir, le falta to accesorio. Esto provoca un TypeError: Cannot read properties of undefined (reading 'pathname') . Agregue el destino del enlace to prop. Ejemplo:
<Link to="/order"> <button> Order Now </button> </Link>