[英]Error: Invariant failed: You should not use <Link> outside a <Router> when I try to test my app using localhost
I'm getting an error when I try to test my app on localhost:3000 in the Router, how can I fix it?当我尝试在路由器的 localhost:3000 上测试我的应用程序时出现错误,我该如何解决? I'm newbie in React & React Router also, what kind of problems can cause this.
我也是 React 和 React Router 的新手,什么样的问题会导致这种情况。
App.js:应用程序.js:
import { NavBar } from "./shared/NavBar"
import { Switch, Route } from "react-router-dom";
import { BooksList } from "./BooksList";
import { CreateBook } from "./CreateBook";
import { UpdateBook } from "./UpdateBook";
function App() {
return (
<>
<NavBar />
<Switch>
<Route path="/create-book">
<CreateBook />
</Route>
<Route path="/update-book">
<UpdateBook />
</Route>
<Route path="/">
<BooksList />
</Route>
</Switch>
</>
);
}
export default App;
NavBar component:导航栏组件:
import { Flex, Image, Box, Link as StyledLink } from "rebass/styled-components";
import { Link } from "react-router-dom";
export const NavBar = () => {
return (
<Flex bg="black" color="white" justifyContent="center">
<Flex px={2} width="100%" alignItems="center">
<Link component={StyledLink} variant="nav" to="/">
React CRUD App
</Link>
<Box mx="auto" />
<Link component={StyledLink} variant="nav" to="/create-book">
Add new item
</Link>
</Flex>
</Flex>
)
}
Wrap your routing to BrowserRouter
将您的路由包装到
BrowserRouter
import进口
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
and wrap routes并包装路线
function App() {
return (
<Router>
<div>
<NavBar />
<Switch>
<Route path="/create-book">
<CreateBook />
</Route>
<Route path="/update-book">
<UpdateBook />
</Route>
<Route path="/">
<BooksList />
</Route>
</Switch>
</div>
</Router>
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.