[英]I use routes in my Node.JS app and when I try to open one of the routes from the browser I get an error
[英]my page keeps disappearing when I try to use routes ad route in reacts
我正在嘗試使用 Routes 和 Route,當我這樣做時,它沒有顯示 home.js,我得到一個空白頁。 我是否需要下載一些東西,因為它在我的其他項目中運行良好,但我忘記了我之前是如何做到的。
這是我的 app.js 代碼
import "./App.css";
import Home from "./components/Home.js";
import Navbar from "./components/Navbar.js";
import { BrowserRouter as Router, Route, Routes } from "react-router-dom";
function App() {
return (
<div className="App">
<div>
<Routes>
<Route path="/" element={<Home />} exact />
</Routes>
</div>
</div>
);
}
export default App;
這是我的 index.js 代碼
import * as React from "react";
import * as ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";
import "./index.css";
import App from "./App";
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById("root")
);
並且 tis 是 Home.js
import React from "react";
import Navbar from './Navbar.js';
const Home = () => {
const text = "Home";
return (
<div>
<h2>{text}</h2>
</div>
);
}
export default Home;
我認為您沒有在正確的位置呼叫路由器。
你應該試試這個:
import "./App.css";
import Home from "./components/Home.js";
import Navbar from "./components/Navbar.js";
import { BrowserRouter as Router, Route, Routes } from "react-router-dom";
function App() {
return (
<div className="App">
<Router>
<Routes>
<Route path="/" element={<Home />} exact />
</Routes>
</Router>
</div>
);
}
export default App;
還要刪除索引中的 BrowserRouter
import * as React from "react";
import * as ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
ReactDOM.render(
<App />,
document.getElementById("root")
);
我剛剛做了npm install --save react-router-dom
並且它有效
Routes
只能用作BrowserRouter
的子級。 目前, App.js
中的Routes
組件是div
的子組件。
BrowserRouter
。 一個典型的方法可能是讓你的index.js
保持原樣,這樣BrowserRouter
被使用一次來包裝你的整個應用程序,並且你的所有路由都直接在它下面的App
中,將你的所有路由保持在頂層。
在 index.js 中:
<BrowserRouter>
<App />
</BrowserRouter>
然后,在App.js
中直接返回所有路由(這里Routes
是BrowserRouter
的直接子級):
App.js 內部:
function App() {
return (
<Routes>
<Route path="/" element={<Home />} exact />
</Routes>
);
}
隨着您的應用程序變得越來越復雜,新的路由將被添加到App.js
中,但您不會返回任何 JSX,因為這是不允許的。 例如,它可能看起來像這樣:
function App() {
return (
<Routes>
<Route path={'/'} element={<Navigation />}>
<Route index element={<Home />} />
<Route path='about' element={<About/>} />
<Route path='shop' element={<Shop/>} />
<Route path='blog' element={<Blog />} />
</Route>
</Routes>
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.