【发布时间】:2020-08-28 13:33:37
【问题描述】:
我正在为我目前正在开发的 React 应用设置导航。
当点击标题中的按钮时,我有一个覆盖网站的全屏导航。
我使用 useState 来打开和关闭覆盖,效果很好,但我需要找到一种方法来在点击导航中的页面链接时自动隐藏导航覆盖。
这是我的导航组件:
import React, { useState } from 'react';
import { NavLink as Link } from 'react-router-dom';
function Navigation(){
const[showMenu, setShowMenu] = useState(false)
let menu
if(showMenu){
menu =
<nav>
<ul>
<Link to="/" exact activeStyle={{color: 'black'}}><li>Home</li></Link>
<Link to="/about"><li>About</li></Link>
<Link to="/work"><li>Work</li></Link>
<Link to="/hire"><li>Hire Me</li></Link>
</ul>
</nav>
}
return(
<>
<button className="nav-btn" onClick={() => setShowMenu(!showMenu)}>Menu</button>
{menu}
</>
);
}
export default Navigation;
我尝试将 onClick 添加到这样的链接中:
<Link onClick={() => useState(false)} exact activeStyle={{color: 'black'}} to="/">
<li>Home</li>
</Link>
但我只是收到一个编译器错误“无法在回调中调用 React Hook “useState”。”所以这就是我的想法。
任何指导都将不胜感激,因为我正在学习 React。
【问题讨论】:
-
只需调用一个函数,然后点击调用函数内的useState
标签: reactjs