【发布时间】:2021-08-22 18:23:26
【问题描述】:
我只想在用户登录时将class="main" 添加到div 和id="mainDiv",并在用户注销时将其删除。请有人帮助我。
这是 App.js 的代码:
import React, { useEffect, useState } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import Login from './components/Login/Login';
import Navbar from './components/Navbar/Navbar';
import Homepage from './components/Homepage/Homepage';
import Contentpage from './components/Contentpage/Contentpage';
import TerminalUI from './components/Terminal/Terminal';
import './App.css';
function App() {
const [status, setStatus] = useState(false); //loggedout
const user = window.localStorage.user;
const manipulateClass = () => {
let x = document.getElementById('mainDiv');
if (localStorage.getItem('user')) {
x.className = 'main';
} else {
x.classList.remove('main');
}
};
useEffect(() => {
console.log('your window local storage :: ', user);
if (user) {
setStatus(true);
manipulateClass();
console.log('Here $tatu$ is ', status);
} else {
manipulateClass();
console.log('i am log out');
}
},[status]);
return (
<React.Fragment>
<Router>
<Navbar />
<div id="mainDiv">
<Switch>
<Route exact path="/" component={Homepage} />
<Route path="/login" component={Login} />
<Route path="/chapters" component={Contentpage} />
<Route path="/terminal" component={TerminalUI} />
</Switch>
</div>
</Router>
</React.Fragment>
);
}
export default App;
【问题讨论】:
标签: javascript reactjs react-hooks local-storage