在单独的文件中反应路由器
React Router in separate files
我正在尝试将路由添加到我的 React 项目中。我有三个独立的组件:
Window.js
import React, { Component } from 'react';
import SideBar from "../SideBar/SideBar";
import MainBody from "../MainBody/MainBody";
import { BrowserRouter as Router} from "react-router-dom";
class Window extends Component{
render() {
return (
<div>
<Router>
<SideBar />
<MainBody />
</Router>
</div>
);
}
}
export default Window
SideBar.js
import React, { Component } from 'react';
import PropTypes from "prop-types";
import { BrowserRouter as Link} from "react-router-dom";
class SideBar extends Component {
render() {
return(
<Link to="/">Home</Link>
<Link to="/about">About</Link>
);
}
}
export default SideBar;
MainBody.js
import React, { Component } from 'react';
import Home from "./Home/Home";
import About from "./About/About";
import { BrowserRouter as Route} from "react-router-dom";
class MainBody extends component {
render() {
return(
<div>
<Route exact path="/" component={Home}>
<Route path="/about" component={About}>
</div>
);
}
}
export default MainBody;
所以基本上,当我在 SideBar 中单击我的 link 之一时,我想转换到 Main Body 中的那个 link(主页和关于只是显示他们的标题)。但是,当我 运行 这个时,我的 Window、MainBody 和 SideBar 组件可以工作,但我的主页和关于组件不会显示。我已经正确地将路由器组件导入到每个组件文件中。如果我将来自 MainBody 的路由放入 Window 组件中,它们就会显示出来(但不确定路由器 link 是否与它一起工作)。任何建议都会有所帮助!
该片段中几乎没有拼写错误,不知道它是在重写时出现的还是您的代码库中有它,但要小心它们(组件而不是组件,错误地编写了返回多个元素的渲染函数等)。
import { BrowserRouter as Link} from "react-router-dom";
这些导入也是错误的,您必须导入 Link 而不是 Link。您只是将 import BrowserRouter 重命名为 Link.
import { Link } from "react-router-dom";
路线也一样。
这里是例子codesanbox。让我知道这是否是您想要的。
我正在尝试将路由添加到我的 React 项目中。我有三个独立的组件:
Window.js
import React, { Component } from 'react';
import SideBar from "../SideBar/SideBar";
import MainBody from "../MainBody/MainBody";
import { BrowserRouter as Router} from "react-router-dom";
class Window extends Component{
render() {
return (
<div>
<Router>
<SideBar />
<MainBody />
</Router>
</div>
);
}
}
export default Window
SideBar.js
import React, { Component } from 'react';
import PropTypes from "prop-types";
import { BrowserRouter as Link} from "react-router-dom";
class SideBar extends Component {
render() {
return(
<Link to="/">Home</Link>
<Link to="/about">About</Link>
);
}
}
export default SideBar;
MainBody.js
import React, { Component } from 'react';
import Home from "./Home/Home";
import About from "./About/About";
import { BrowserRouter as Route} from "react-router-dom";
class MainBody extends component {
render() {
return(
<div>
<Route exact path="/" component={Home}>
<Route path="/about" component={About}>
</div>
);
}
}
export default MainBody;
所以基本上,当我在 SideBar 中单击我的 link 之一时,我想转换到 Main Body 中的那个 link(主页和关于只是显示他们的标题)。但是,当我 运行 这个时,我的 Window、MainBody 和 SideBar 组件可以工作,但我的主页和关于组件不会显示。我已经正确地将路由器组件导入到每个组件文件中。如果我将来自 MainBody 的路由放入 Window 组件中,它们就会显示出来(但不确定路由器 link 是否与它一起工作)。任何建议都会有所帮助!
该片段中几乎没有拼写错误,不知道它是在重写时出现的还是您的代码库中有它,但要小心它们(组件而不是组件,错误地编写了返回多个元素的渲染函数等)。
import { BrowserRouter as Link} from "react-router-dom";
这些导入也是错误的,您必须导入 Link 而不是 Link。您只是将 import BrowserRouter 重命名为 Link.
import { Link } from "react-router-dom";
路线也一样。
这里是例子codesanbox。让我知道这是否是您想要的。