reactjs - 点击“登录”后,我的登录页面无法消失
问题描述
我创建了名为“LoginForm”、“Navbar”、“Home”、“About”和“Contact”的文件,它们都有各自的基本组件。
当我尝试将它们全部呈现到我的应用程序中时,我希望首先出现登录屏幕。然后我将它设置到我单击“登录”的位置,它应该链接到我的主页,然后可以访问和切换导航栏。
出于某种原因,单击“登录”时我可以访问主页,但登录屏幕并没有消失。
我的代码如下,每个页面的路由和指定确切路径的开关。
import React, { Component } from 'react';
import ReactDOM from "react-dom";
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
import './App.css';
import LoginForm from './components/LoginForm';
import Navbar from './components/Navbar';
import Home from './components/Home';
import About from './components/About';
import Contact from './components/Contact';
class App extends Component {
render() {
return (
<div className="container">
<Router>
<Route path="/" component={LoginForm} />
<Navbar />
<Switch>
<Route path="/" exact component={Home} />
<Route path="/Home" exact component={Home} />
<Route path="/About" exact component={About} />
<Route path="/Contact" exact component={Contact} />
</Switch>
</Router>
</div>
);
}
}
export default App;
解决方案
您有两条路径相同的路线,当路径为“/”时,这将始终呈现:
<Route path="/" component={LoginForm} />
该开关将渲染与路径匹配的第一个子路由,因此这也将渲染:
<Route path="/" exact component={Home} />
推荐阅读
- java - 完成后以编程方式关闭 ACTION_VIEW 对话框
- python - 如何在两个其他数字之间获取列表中的数字总和
- python - 如何实现双线性插值?
- parsing - 计算语法的 FIRST & FOLLOW 集
- javascript - Visual Studio Code 无法识别 EJS
- javascript - 不止一次播放动画Js
- reactjs - gatsby-image:在 childImageSharp 中看不到图片?
- java - Google Maps Java API 如何确定支持的 TLS 协议?
- r - 创建虚拟变量 if NA 1 else -1
- python - 根据单独的字典有条件地创建字典