【发布时间】:2020-11-20 16:37:52
【问题描述】:
我有一个相当简单的 NavBar 组件,我希望它根据您是否登录显示不同的按钮。它在您第一次加载页面但未登录时工作。当您正确登录时,它会更新视图。但是,当您注销时,视图不会更新,您会继续看到truthy 分支中的按钮。注销功能实际上是从 localStorage 中删除令牌 - 视图只是没有更新。有什么建议吗?
import React from 'react';
import { NavLink } from 'react-router-dom';
import '../App.css';
function Navigation() {
const logout = function () {
localStorage.removeItem('username');
localStorage.removeItem('token');
};
return (
<>
{localStorage.getItem('token') ? (
<div className='nav'>
<NavLink to='/' className='link'>
Home
</NavLink>
<NavLink to='/login' className='link' onClick={logout}>
Log Out
</NavLink>
</div>
) : (
<div className='nav'>
<NavLink to='/register' className='link'>
{' '}
Register{' '}
</NavLink>
<NavLink to='/login' className='link'>
Log In
</NavLink>
</div>
)}
</>
);
}
export default Navigation;
【问题讨论】:
标签: javascript reactjs local-storage conditional-operator