- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个从登录屏幕到仪表板的应用程序,其中包含另外两个页面:客户和元素。当我加载这些屏幕时,它工作正常,但是当我返回浏览器或单击浏览器上的刷新时,css 丢失了。这是我的代码:非常感谢任何帮助。
1) App.js
import React, {Component} from 'react';
import Login from './js/components/login/Login.js';
import Dashboard from './js/components/dashboard/Dashboard.js';
import {BrowserRouter as Router, Route, Switch, withRouter} from 'react-router-dom';
import store from './js/config/store'
import { Provider } from 'react-redux'
import PrivateRoute from './common/PrivateRoute';
import { getCurrentUser } from './util/APIUtils';
import { Layout, notification } from 'antd';
import { ACCESS_TOKEN } from './index';
//Private Route
import Projects from "./js/components/projects/Projects.js";
//Public Route
import Customers from "./js/components/customers/Customers.js";
const { Content } = Layout;
class App extends Component {
constructor(props) {
super(props);
this.state = {
currentUser: null,
isAuthenticated: true,
isLoading: false
}
// this.handleLogout = this.handleLogout.bind(this);
this.loadCurrentUser = this.loadCurrentUser.bind(this);
//this.handleLogin = this.handleLogin.bind(this);
notification.config({
placement: 'topRight',
top: 70,
duration: 3,
});
}
loadCurrentUser() {
this.setState({
isLoading: true
});
getCurrentUser()
.then(response => {
this.setState({
currentUser: response,
isAuthenticated: true,
isLoading: false
});
}).catch(error => {
this.setState({
isLoading: false
});
});
}
componentDidMount() {
this.loadCurrentUser();
}
render() {
return (
<Provider store={store}>
<Router>
<Switch>
<Route exact path="/"
render={(props) => <Login isAuthenticated={this.state.isAuthenticated}
currentUser={this.state.currentUser} handleLogout={this.handleLogout} {...props} />}>
</Route>
<Route path="/login"
render={(props) => <Login onLogin={this.handleLogin} {...props} />}></Route>
<PrivateRoute authenticated={this.state.isAuthenticated} path="/projects" component={Projects}></PrivateRoute>
<PrivateRoute authenticated={this.state.isAuthenticated} path="/customers" component={Customers}></PrivateRoute>
<PrivateRoute authenticated={this.state.isAuthenticated} path="/dashboard" component={Dashboard}></PrivateRoute>
</Switch>
</Router>
</Provider>
)
}
}
export default App
2) 仪表板.js
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { fetchProjects } from "../../actions/ProjectActions";
import '../../../css/main.css';
import {
Route,
NavLink,
BrowserRouter as Router,
Redirect,
withRouter
} from "react-router-dom";
//Private Route
import Projects from "../projects/Projects.js";
//Public Route
import Customers from "../customers/Customers.js";
class Dashboard extends Component {
render() {
return (
<Router>
<div>
<h1>Reporting Tool</h1>
<ul className="header">
<li><NavLink to="/projects">Projects</NavLink></li>
<li><NavLink to="/customers">Customers</NavLink></li>
</ul>
<div className="content">
<Route path="/projects" component={Projects}/>
<Route path="/Customers" component={Customers}/>
</div>
</div>
</Router>
);
}
}
export default Dashboard;
3)CSS
@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500');
* {
box-sizing: border-box;
padding: 0;
margin: 0;
}
h1, h2, h3, h4 ,h5, h6, p, ui, li{
font-weight: 400;
}
/*Dashboard*/
ul.header li {
display: inline;
list-style-type: none;
margin: 0;
}
ul.header {
background-color: #111;
padding: 0;
}
ul.header li a {
color: #FFF;
font-weight: bold;
text-decoration: none;
padding: 20px;
display: inline-block;
}
.content {
background-color: #FFF;
padding: 20px;
}
.content h2 {
padding: 0;
margin: 0;
}
.content li {
margin-bottom: 10px;
}
a {
text-decoration: none;
outline: none;
}
ul {
list-style: none;
}
body {
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: #323531;
-webkit-font-smoothing: antialiased;
}
/* Login */
.wrapper {
display: flex;
flex-direction: row;
height: 100vh;
}
.wrapper .right {
flex: 3;
}
.wrapper .left {
display: flex;
flex-direction: column;
flex: 1;
align-items: center;
justify-content: center;
height: 100vh;
box-shadow: 2px 0 5px 0 rgba(43,40,43,0.3);
z-index: 1;
}
.left .login {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 80%;
padding-bottom: 1rem;
}
.left .login .logo {
display: flex;
flex-direction: row;
align-items: center;
width: 100%;
padding-left: 1rem;
}
.left .login .logo img {
width: 100px;
}
.left .login .logo h1 {
font-size: 1.5rem;
}
.left .login label {
font-size: 0.9rem;
line-height: 2rem;
font-weight: 400;
}
.left .login form {
width: 80%;
padding-bottom: 2rem;
}
.login .text-input {
margin-bottom: 1.5rem;
width: 100%;
border-radius: 3px;
background: transparent;
border: 1px solid #4D52694D;
padding: 0.5rem 1rem;
line-height: 1.3rem;
}
.login .error-message {
display: none;
font-weight: 400;
color: #ED5565;
}
.login .error-message.show {
display: flex;
align-items: center;
justify-content: center;
width: 80%;
}
.login .form-actions {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.login .form-actions a {
color: #4D5269;
text-decoration: none;
text-align: center;
font-size: 0.9rem;
}
.login .or, .links {
width: 80%;
}
.secondary-btn {
width: 60%;
}
.login .links a {
display: block;
text-decoration: none;
text-align: center;
font-size: 0.9rem;
margin-bottom: 1rem;
}
.login .or {
display: flex;
flex-direction: row;
margin-bottom: 1.5rem;
align-items: center;
}
.login .or .bar {
flex: auto;
border: none;
height: 1px;
background: #4D52694D;
}
.login .or span {
color: #4D5269;
padding: 0 0.9rem;
}
.right .banner-showcase {
display: flex;
justify-content: center;
background: url('../image/banner-big.jpg') no-repeat center center / cover;
height: 100vh;
text-align: center;
}
.right .banner-showcase h1 {
font-size: 3rem;
width: 100%;
color: #fff;
padding-top: 2vh;
}
.login-footer {
text-align: center;
font-size: 0.8rem;
width: 80%;
padding-top: 3rem;
}
/* Buttons */
.primary-btn {
padding: 0.7rem 1rem;
height: 2.5rem;
display: block;
border: 1px solid #977ED9;
border-radius: 3px;
font-weight: 300;
background: transparent;
color: #977ED9;
text-decoration: none;
cursor: pointer;
text-align: center;
transition: all 0.5s;
}
.secondary-btn {
padding: 0.5rem 1rem;
font-size: 0.9rem;
height: 2.5rem;
display: block;
border: 1px solid #977ED9;
border-radius: 3px;
font-weight: 300;
background: transparent;
color: #977ED9;
text-decoration: none;
cursor: pointer;
text-align: center;
transition: all 0.5s;
}
/* React progress button */
.pb-container {
width: 100%;
}
.pb-container .pb-button {
background: transparent;
border: 1px solid #977ED9;
border-radius: 3px;
padding: 0.7em 1em;
height: 2.5rem;
width: 100%;
}
.pb-container .pb-button span {
font-size: 0.9rem;
color: #977ED9;
font-weight: 300;
}
.pb-container .pb-button svg {
height: 2.5rem;
width: 2.5rem;
}
.pb-container.loading .pb-button {
width: 2.5rem;
border-radius: 27px;
color: #977ED9;
}
.pb-container.error .pb-button {
border-color: #ED5565;
background-color: #ED5565;
}
.pb-container.success .pb-button {
border-color: #A0D468;
background-color: #A0D468;
}
最佳答案
由于您的 main.css 是一个全局样式表,您可以将其添加到您的 index.html 而不是尝试将其导入 JS
如果您使用了 Create React App 或类似的东西,您的 index.html 文件可能会位于 /public
中文件夹。
您可以将 main.css 文件复制到该公共(public)文件夹,然后将其添加到 <head>
像这样的标签:
<head>
<link rel="stylesheet" href="main.css">
</head>
关于javascript - 在 React 应用程序中按下刷新或后退按钮时 CSS 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54764261/
我在 Ubuntu 10.04 LTS 上运行 Eclipse Galileo。今天 Ubuntu 在我身上崩溃了,重新启动后,我发现 Eclipse 已经完全失去了 Java Perspective
我使用配置了 sonata_user 的 SonataAdminBundle在 config.yml : sonata_user: impersonating: route:
我有 ubuntu 14.04 但它不见了 docker exec sudo docker exec -it ubuntu_bash bash 我希望在现有正在运行的 docker 容器中运行交互式
我正在使用 Ubuntu 8.04/32 位(作为虚拟机)。在一个不是 min 的项目上执行一些 make 时,我得到了错误: g++:/usr/lib/libstdc++.a: 没有这样的文件或目录
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我正在尝试获取有关我在 UIImagePicker 中选择的视频的一些数据。 因此,当它进入 UIImagePicker 委托(delegate)方法(如下)时,我知道我需要使用信息字典中的 UIIm
我的网站最近被可能的黑客行为删除了。我上传了备份的文件夹和数据库,但现在我的 View 没有显示。其他一切都有效。我想不出有什么变化,只是上传了几天前的备份。 这些字段在 admin/build/vi
我执行以下操作来设置我的 session ,这是有效的,因为 echo 出现了。但是当我转到下一页或另一页时, session 不存在吗?我做错了什么? $session_start(); if ($
我试图在 BigQuery 中使用这段代码,显然是从 GA 中获取数据,但 _TABLE_SUFFIX 似乎有问题。错误显示“错误:无法识别的名称:_TABLE_SUFFIX at [12:3]”您能
输入:8(2 5 6 9 10 2 7 4)预期输出:(2 7 9 9 12 5 7 6)实际输出:(2 7 9 9) 这是我的大学作业,也是我第一次在这里提问。我不知道为什么,但 10 没有扫描,有
$('div'); // 我在上面的代码中遇到错误。在检查 .js 代码时,我找不到名为 $ 的函数,但根据文档,应该有一个。 最佳答案 试试 http://ajax.googleapis.co
以下简单代码的输出对我来说有点奇怪。它错过了在控制台上打印的 0 到 100 之间的一些数字。 谁能解释一下为什么省略打印?我对并发编程完全陌生。 import java.util.concurren
我正在学习 xamarin 以构建移动应用程序,但我对 Xamarin 和移动应用程序一无所知。我打开了一个空白的移动应用程序,其中有“Hello world”示例并编辑了一些文本,但我的应用程序图标
我正在将一些值存储到 sqlite 数据库中。因此,数据是作为字符串从文本字段收集的,然后转换为 double 并持久化。 这是我试过的 NSDecimalNumber 答案; value.answe
我有一个奇怪的案例。突然,其中一个表中的一些记录(这么多记录)丢失了。首先,我认为这是由我的 PHP 脚本中的错误引起的。但是,我检查了一下,我的脚本中没有DELETE操作,只有UPDATE。有谁知道
我正在复制 NSString来自 NSDictionary进入本地NSString使用 [[NSString alloc] initWithString:] ,对其进行处理(删除一些字符),然后将其发
当保存在根文件夹中时,我的非常基本的 html 页面保持样式。为一个组创建了一个新文件夹,但是当我将页面移动到该文件夹时,它们似乎失去了与 css 文件的连接。 认为问题可能出在链接上,因为它现在
我需要使用 OpenCV 训练一些图像。但问题是,我找不到 opencv_createsamples 程序。我以正常方式安装了 OpenCV,因为我使用的是 Windows 7。这个 opencv_c
我有一个绑定(bind)到 JTable 的 ArrayList。之后 bindingGroup.unbind(); bindingGroup.bind(); (完成刷新数据)我丢失了表格单元格渲
所以基本上我们只是丢失了一个 keystore 和备份 keystore 。但是我们可能知道原始 keystore 的密码。 我的问题是,如果我们知道原始 keystore 的密码,我们可以重新生成
我是一名优秀的程序员,十分优秀!