什么似乎是简单的集成与react-router-dom有意想不到的结果。当我点击侧边栏中的链接时,链接组件通过生成网址(即localhost:3000/about)正常工作,但我仍然停留在以前的查看页面上。当我点击前进和后退按钮时,路由会呈现正确的组件。
我正在使用Webpack和Typescript,但我不认为它们会影响任何事情。
“反应”:“^16.12.0”,
"report-router-dom":"^5.1.2"
//App Component
import * as React from 'react';
import { BrowserRouter as Router, Link, Route } from 'react-router-dom';
import Sidebar from './Sidebar';
import Home from './Home';
import About from './About';
import Work from './Work';
import Contact from './Contact';
import Skills from './Skills';
const App: React.FC = () => {
return (
<Router>
<div className="main-container">
<Sidebar />
<Route exact path="/"><Home /></Route>
<Route path="/about"><About /></Route>
<Route path="/skills" component={Skills}></Route>
<Route path="/work" component={Work}></Route>
<Route path="/contact" component={Contact}></Route>
</div>
</Router>
);
};
//Sidebar Component
import * as React from 'react';
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';
import HomeIcon from '@material-ui/icons/Home';
import FaceIcon from '@material-ui/icons/Face';
import WorkIcon from '@material-ui/icons/Work';
import CodeIcon from '@material-ui/icons/Code';
import MailOutlineIcon from '@material-ui/icons/MailOutline';
const Sidebar: React.FC = props => {
return (
<Router>
<nav className="nav-container ">
<Link to={'/'}><HomeIcon /></Link>
<Link to={'/about'}><FaceIcon /></Link>
<Link to={'/skills'}><CodeIcon /></Link>
<Link to={'/work'}><WorkIcon /></Link>
<Link to={'/contact'}><MailOutlineIcon /></Link>
</nav>
</Router>
);
};
这是因为您的侧边栏组件被包装在自己的路由器中。您希望您的链接和路由共享同一个父路由器。删除您的边栏路由器,它应该可以解决您的问题。
const Sidebar: React.FC = props => {
return (
<nav className="nav-container ">
<Link to={'/'}><HomeIcon /></Link>
<Link to={'/about'}><FaceIcon /></Link>
<Link to={'/skills'}><CodeIcon /></Link>
<Link to={'/work'}><WorkIcon /></Link>
<Link to={'/contact'}><MailOutlineIcon /></Link>
</nav>
);
};
我已经稍微调整了React路由器的私有路由示例,以便与Redux玩得很好,但是当链接或重定向到其他页面时,不会呈现任何组件。这个例子可以在这里找到: https://reacttraining.com/react-router/web/example/auth-workflow 他们的PrivateRoute组件如下所示: 但是,因为我已经把它合并到一个Redux应用程序中,我不得不稍微调整一下私
I my app.js我已将路线定义为: 在我的中,我有一个链接: 但问题是,当我在aboue path中设置prop'确切={true}时,找不到这个路径 当我没有在上面的路径中设置exact={true}时,在同一页面上呈现路径组件及其下方的路径组件
我是一个新的反应和反应。我已经花了几个小时了,我只是走到了死胡同。 我正在使用CreateReact应用程序和用于css的bulma。我的依赖项: }, 我查看了stackoverflow的所有相关问题,创建了react应用程序文档,并在他们的回购协议中搜索了他们的开放问题部分,谷歌搜索了所有可能的关键字。我不知所措。 我的路由器只会呈现一个路由(Homeroute)。 如何让它显示/创建路线?
我使用开关标签路由不同的路由 但这只会加载路径/和/主页的第一个组件,也会加载loginpage nothing,并且主页组件不会加载到/主页路径! 我在切换前尝试过使用浏览器路由器标签,尝试过先加载主页,也是一样的只有主页组件加载 App.js 登录age.js 家age.js 预期 访问/应该加载登录页面 访问/主页应加载主页
我在react中编写了一个带有自动建议的简单搜索组件,它调用themoviedb。我正在使用react router dom,并在app.js中定义了如下路由参数: 搜索组件如下所示: 我的问题是,当点击链接时,它会改变url,但它会停留在同一个站点上。如果我不使用react路由器dom链接组件,只使用元素,它可以正常工作,但所有东西都会重新渲染。 **在app.js中更新我的react路由器代码