【发布时间】:2021-10-05 15:57:08
【问题描述】:
我正在尝试在 react 中创建一个网站,并正在使用 router-dom 来显示正确的 url。
我有一个导航栏,它使用 Link to="" 链接到 about 页面,然后使用 Switch 和 Route 显示正确路径的组件,但它不起作用。
不确定我是否在这里遗漏了任何内容,但我无法显示任何组件。
这是我的 PageContainer
import React from "react";
import { Route, Switch } from "react-router-dom";
import Alphabet from "./Alphabet";
import About from "./About";
export default class PageContainer extends React.Component {
render() {
return (
<section className="pagecontainer">
<Switch>
<Route exact path="/omoss">
<About />
</Route>
<Route exact path="/">
<Alphabet />
</Route>
</Switch>
</section>
);
}
}
这是我的导航栏
import React from "react";
import { Link } from "react-router-dom";
export default class Navbar extends React.Component {
render() {
return (
<section>
<section className="navbar">
<Link to="/">Hem</Link>
<Link to="/omoss">OM OSS</Link>
</section>
</section>
);
}
}
更新:
- 从上述两个组件中删除了
BrowserRouter。 - 将 App.js 更改为以下内容。
App.js
import React from "react";
import "./App.css";
import { BrowserRouter } from "react-router-dom";
import Navbar from "./components/Navbar";
import PageContainer from "./components/PageContainer";
function App() {
return (
<BrowserRouter>
<section className="App">
<Navbar />
<PageContainer />
</section>
</BrowserRouter>
);
}
export default App;
仍然无法正常工作。 url 发生变化,但组件不显示。
更新 2
当我删除了在Switch 中显示在PageContainer 中但不在Route 中的其他两个组件时,我想我解决了这个问题。我在上传之前已经删除了它们,但在我的代码中忘记了它们
【问题讨论】:
-
导航栏中不需要路由器
标签: javascript reactjs react-router-dom