Reactjs 向引导菜单添加钩子
嗨,我试图修改我的引导菜单使用挂钩(反应),从而能够切换菜单时,屏幕是移动大小 我有以下几点,但我被卡住了:-(Reactjs 向引导菜单添加钩子,reactjs,react-hooks,Reactjs,React Hooks,嗨,我试图修改我的引导菜单使用挂钩(反应),从而能够切换菜单时,屏幕是移动大小 我有以下几点,但我被卡住了:-( import React,{useState}来自“React”; 从“react router dom”导入{Link,NavLink}; 常量导航栏=()=>{ 常量[isExpanded,setIsExpanded]=useState(false); 返回( GRT setIsExpanded(!isExpanded)} > 主页(当前) setIsExpanded(!
import React,{useState}来自“React”;
从“react router dom”导入{Link,NavLink};
常量导航栏=()=>{
常量[isExpanded,setIsExpanded]=useState(false);
返回(
GRT
setIsExpanded(!isExpanded)}
>
-
主页(当前)
-
setIsExpanded(!isExpanded)}
>
故事
-
setIsExpanded(!isExpanded)}
>
关于我们
-
setIsExpanded(!isExpanded)}
>
联系我们
);
};
导出默认导航栏;
如果菜单按照正常方式使用jQuery,我希望它能够正常工作
我将需要移动到useEffect来管理菜单外的任何单击,以便稍后关闭菜单,但我现在正在努力实现这一点
我尝试过许多其他的解决方案,但现在都失败了,挂钩似乎是最灵巧的,我希望能提供更好的编码体验你认为在div上设置isExpanded属性应该做什么?我认为你需要设置一个?你不能使用CSS hover吗?你真的需要使用state吗?我建议你选择查看
样式化组件
。它使您更容易实现所需的功能。感谢您的关注,我移动到React Bootstrap,现在已解决了我的问题:-)
import React, { useState } from "react";
import { Link, NavLink } from "react-router-dom";
const NavigationBar = () => {
const [isExpanded, setIsExpanded] = useState(false);
return (
<nav className="navbar navbar-expand-lg fixed-top always-solid">
<div className="container-fluid">
<Link className="navbar-brand" to="/">
GRT
</Link>
<button
className="navbar-toggler"
type="button"
aria-controls="navbarNav"
aria-expanded="false"
aria-label="Toggle navigation"
onClick={() => setIsExpanded(!isExpanded)}
>
<span className="custom-toggler-icon">
<i className="fa fa-bars"></i>
</span>
</button>
<div
className="collapse navbar-collapse"
isExpanded={isExpanded}
id="navbarNav"
>
<ul className="navbar-nav mx-auto">
<li className="nav-item active">
<NavLink className="nav-link" to="/">
Home<span className="sr-only">(current)</span>
</NavLink>
</li>
<li className="nav-item">
<NavLink
className="nav-link"
to="/stories"
onClick={() => setIsExpanded(!isExpanded)}
>
Stories
</NavLink>
</li>
<li className="nav-item">
<NavLink
className="nav-link"
to="/about"
onClick={() => setIsExpanded(!isExpanded)}
>
About Us
</NavLink>
</li>
<li className="nav-item">
<NavLink
className="nav-link"
to="/contact"
onClick={() => setIsExpanded(!isExpanded)}
>
Contact Us
</NavLink>
</li>
</ul>
</div>
</div>
</nav>
);
};
export default NavigationBar;