我正在使用 Bootstrap 在 React 中创建导航栏并添加导航链接。我正在学习使用 React Router,我的主要 App.js 文件如下所示:import './App.css';import { BrowserRouter as
我正在使用 Bootstrap 在 React 中创建导航栏并添加导航链接。我正在学习使用 React Router,我的主要 App.js 文件如下所示:
import './App.css';
import {
BrowserRouter as Router,
Route,
Link,
Routes,
Outlet,
} from "react-router-dom";
import { Navbar, Nav } from "react-bootstrap";
import { FaHome, FaBook, FaBookReader } from "react-icons/fa";
import Home from './Components/Home';
import Thrillers from './Components/Thrillers';
import Classics from './Components/Classics';
import Nonfiction from './Components/Nonfiction';
import Romance from './Components/Romance';
import Sciencefiction from './Components/Sciencefiction';
function App() {
return (
<div className="App">
<Router>
<Navbar className="navbar-bg" expand="lg">
<Navbar.Brand>
<h1 className="navbar-brand-text">
<Link to="/" className="brand-link">
<FaBookReader /> Rupesh Gupta
</Link>
</h1>
</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto">
<Nav.Link as={Link} to="/" className="nav-link">
<FaHome /> Home
</Nav.Link>
<Nav.Link as={Link} to="/thrillers" className="nav-link">
<FaBook /> Thrillers
</Nav.Link>
<Nav.Link as={Link} to="/classics" className="nav-link">
<FaBook /> Classics
</Nav.Link>
<Nav.Link as={Link} to="/nonfiction" className="nav-link">
<FaBook /> Non Fiction
</Nav.Link>
<Nav.Link as={Link} to="/romance" className="nav-link">
<FaBook /> Romance
</Nav.Link>
<Nav.Link as={Link} to="/sciencefiction" className="nav-link">
<FaBook /> Science Fiction
</Nav.Link>
</Nav>
</Navbar.Collapse>
</Navbar>
<div className="container mt-4">
<Routes>
<Route path="/" element={<Outlet />}>
<Route index element={<Home />} />
<Route path="/thrillers" element={<Thrillers />} />
<Route path="/classics" element={<Classics />} />
<Route path="/nonfiction" element={<Nonfiction />} />
<Route path="/romance" element={<Romance />} />
<Route path="/sciencefiction" element={<Sciencefiction />} />
</Route>
</Routes>
</div>
</Router>
</div>
);
}
export default App;
我遇到的问题是,当页面最初加载时(在 \'npm start\' 之后或访问它在 github-pages 上的部署位置时),主页组件未显示。但是,当我导航到 \'Home\' 或 \'Rupesh Gupta\'(通过 Navbar 组件中的链接)时,主页组件会显示。导航栏中的其他链接按预期工作。如果我关闭开发服务器并重新启动它,主页将不再加载。有什么建议吗?谢谢。
使用 sed:
$ echo "$string" | sed -e "s/^$prefix//" -e "s/$suffix$//"
o-wor
在 sed 命令中, ^
字符 匹配以 开头的文本 $prefix
,尾随字符 $
匹配以 结尾的文本 $suffix
.
Adrian Frühwirth 在下面的评论中提出了一些很好的观点,但 sed
对于这个目的来说非常有用。$prefix 和 $suffix 的内容由 sed 解释,这一事实可能是好事也可能是坏事 - 只要你注意,就应该没问题。美妙之处在于,你可以做这样的事情:
$ prefix='^.*ll'
$ suffix='ld$'
$ echo "$string" | sed -e "s/^$prefix//" -e "s/$suffix$//"
o-wor
这可能就是你想要的,而且比 bash 变量替换更花哨、更强大。如果你记住能力越大,责任越大(正如蜘蛛侠所说),那么你应该没问题。
找到 sed 的快速介绍 http://evc-cit.info/cit052/sed_tutorial.html
关于 shell 及其字符串的使用的说明:
对于给出的特定示例,以下内容也同样有效:
$ echo $string | sed -e s/^$prefix// -e s/$suffix$//
...但仅仅是因为:
在命令行上用引号括住字符串通常是一种很好的做法,因为即使字符串中包含空格,它也会作为单个参数呈现给命令。我们用引号括住 $prefix 和 $suffix 的原因相同:每个编辑命令都会作为一个字符串传递到 sed。我们使用双引号是因为它们允许变量插入;如果我们使用单引号,sed 命令就会得到一个文字 $prefix
, $suffix
这肯定不是我们想要的。
还请注意,我在设置变量 prefix
和 suffix
。我们当然不希望字符串中的任何内容被解释,因此我们将它们用单引号引起来,这样就不会发生插值。同样,在这个例子中可能没有必要,但这是一个很好的习惯。