Я хочу скрыть панель заголовка на странице входа в систему, и после успешного входа она должна появиться на других страницах. Я пытался создать класс в CSS, чтобы он скрыл заголовок, но я не смог найти способ отключить его после успешный вход
import React, { Component } from 'react';
import './App.css';
import Authen from './Pages/Authen';
import Home from './Pages/Home';
import {
BrowserRouter as Router,
Route,
Link
} from 'react-router-dom';
class App extends Component {
render() {
return (
<div className = "app">
<Router>
<div>
<div className = "hide">
<ul>
<li><Link to = "/Home">Home</Link></li>
</ul>
</div>
<Route exact path = "/" component = {Authen}/>
<Route path = "/Home" component = {Home}/>
</div>
</Router>
</div>
);
}
}
export default App;
CSS:
.hide{
display: none;
}
Вот как страница перенаправляется со страницы аутентификации на домашнюю страницу. Страница входа находится не в том же файле, что и страница маршрутизатора:
Login = () => {
const email = this.refs.email.value;
const password = this.refs.password.value;
console.info(email,password);
const auth = firebase.auth();
const promise = auth.signInWithEmailAndPassword(email, password);
promise.then(user =>{
var lout = document.getElementById('Login');
lout.classList.remove('hide');
});
promise.catch(e =>{
var err = e.message;
console.info(err);
this.setState({err: err});
});
firebase.auth().onAuthStateChanged((user) => {
if (user) {
console.info(user.uid);
this.props.history.push('/Home')
}
});
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Для меня ваш код немного неясен, потому что мы не можем видеть, где вы объявляете свой заголовок. Я вижу несколько способов справиться с ситуацией.
Во-первых, я обычно использую React Redux для управления состоянием моего пользователя, и с помощью состояния вашего пользователя вы можете отображать HTML в зависимости от того, находится он в сети или нет. Это отрывок о том, как можно управлять динамическим рендерингом с помощью переменной.
class App extends Component {
render() {
let header = user.LoggedIn ? <Header /> : null
return (
<div>
{header}
</div>
);
}
}
Однако при текущем состоянии вашего приложения в этом может быть нет необходимости. Если вы скрываете только верхний колонтитул на своей корневой странице, зачем вообще его вставлять? Инкапсулируйте его на своей домашней странице и закончите.
Мой плохой @NitinDhomse, я пока не могу комментировать, так как у меня недостаточно репутации. Я новичок в SO, но в своем ответе я просто немного развил. Надеюсь, так лучше.
спасибо, ребята, за вашу помощь, я проверю это, извините за мой поздний ответ, но я был занят пасхальной семьей ...
Это должно быть в комментарии.