reactjs - 如何防止我的 React 应用程序中的导航栏在页面刷新时重新呈现?
问题描述
我是 React 的新手,正在尝试弄清楚如何在页面刷新时保持导航栏的状态。
我有一个导航栏,其中包含“主页”和“项目”,每个都链接到各自的页面(./Home.js 和 ./Projects.js)。当用户在主页上时,仅显示“项目”链接,当用户在项目页面上时,仅显示“主页”链接。
我的代码工作得很好......直到页面被刷新;然后导航栏重新呈现到其原始状态,无论它在哪个页面上。如果重新加载浏览器,如何确保导航栏不会在页面上重新呈现?我了解为什么代码会以这种方式运行,但无法找到使导航栏在页面刷新时不重新呈现的解决方案。
Router.js 代码:
import React, { useState } from "react";
import { Link, Route, BrowserRouter } from "react-router-dom";
import Home from "./Home.js";
import Projects from "./Projects.js";
class Router extends React.Component {
constructor(props) {
super(props);
this.state = {
showHome: false,
showProjects: true
};
this.handleHomeClick = this.handleHomeClick.bind(this);
this.handleProjectsClick = this.handleProjectsClick.bind(this);
}
handleHomeClick() {
this.setState(() => ({
showHome: false,
showProjects: true
}));
}
handleProjectsClick() {
this.setState(() => ({
showHome: true,
showProjects: false
}));
}
render() {
const { showHome, showProjects } = this.state;
return (
<BrowserRouter>
<Route exact path="/" component={Home} />
<Route path="/projects" component={Projects} />
<div className="navigation">
<div className="navigation-sub">
{showHome && (
<Link
to="/"
className="nav-item"
id="nav-home"
onClick={this.handleHomeClick}
>
Home
</Link>
)}
{showProjects && (
<Link
to="/projects"
className="nav-item"
id="nav-projects"
onClick={this.handleProjectsClick}
>
Projects
</Link>
)}
</div>
</div>
</BrowserRouter>
);
}
}
export default Router;
App.js 代码:
import React from "react";
import Router from "./Router.js";
import "./App.css";
function App() {
return (
<div className="App">
<Router />
</div>
);
}
export default App;
解决方案
推荐阅读
- javascript - 用文本替换损坏的图像
- javascript - 如何在 Blazor 客户端中正确获取 facebook 登录令牌?
- html - 如何根据时间戳和电子表格上的文本在图表上添加文本标签
- python - 将 Pandas 索引设置为给定的 DateTimeindex
- .net - 使用 VBA 从 Access 应用程序中使用 ASP.NET Web 服务
- kotlin - 仅在满足条件时才覆盖函数
- typescript - 电子,打字稿 - 函数中的其余参数不起作用
- wpf - 使用 WPF Button IsCancel 属性时如何找出用户是否单击了按钮或按下了转义键
- c - 我想阅读 C 中一行的某个部分
- javascript - 为什么当我 console.log 我的承诺时返回整数值