【发布时间】:2022-07-18 22:40:29
【问题描述】:
我是 react 新手。请帮助我摆脱这个问题。我有两个不同的组件,导航栏和侧边栏。我的侧边栏默认是隐藏的。在顶部导航栏中,我有一个菜单栏图标。现在,当我单击菜单栏图标(位于另一个名为顶部导航栏的组件中)时,我想将一个类切换到侧边栏。但是如果不导入它,我就无法从导航栏触发这个功能。我想触发这个功能
const [openSidebar, setOpenSidebar] = useState(false);
const sideNavOpen = () => {
setOpenSidebar(openSidebar => !openSidebar)
}
当我点击这里时(不同的组件):
<li>
<button onClick={sideNavOpen}>
<FaBars />
</button>
</li>
我怎样才能做到这一点?请高手帮帮我。这是我的完整代码:
顶部导航栏
import Link from 'next/link';
import React from 'react';
import { FaBars } from "react-icons/fa";
const Navbar = () => {
return (
<div className='navbar-wrapper'>
<div className="container">
<div className="navbar-brand">
<Link href="/">
<a>Navbar</a>
</Link>
</div>
<ul>
<li>
<Link href="/">
<a>Home</a>
</Link>
</li>
<li>
<Link href="/about">
<a>About Us</a>
</Link>
</li>
<li>
<Link href="/contact">
<a>Contact</a>
</Link>
</li>
<li>
<button>
<FaBars />
</button>
</li>
</ul>
</div>
</div>
);
}
export default Navbar;
侧边栏
import React from 'react';
import { useState } from 'react';
import Link from "next/link";
const Sidebar = () => {
const [openSidebar, setOpenSidebar] = useState(false);
const sideNavOpen = () => {
setOpenSidebar(openSidebar => !openSidebar)
}
return (
<div className={"sidebar" + (openSidebar ? " sidebar-active" : "")}>
<div>
<ul>
<li>
<Link href="/">
<a>Home</a>
</Link>
</li>
<li>
<Link href="/about">
<a>About</a>
</Link>
</li>
<li>
<Link href="/contact">
<a>Contact</a>
</Link>
</li>
</ul>
</div>
</div>
);
}
export default Sidebar;
【问题讨论】:
标签: javascript node.js reactjs next.js