![](/img/trans.png)
[英]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.