【发布时间】:2021-07-06 21:25:19
【问题描述】:
我的导航栏组件有 2 个子组件。每个组件都有自己的状态。 状态在其组件内工作正常。当两个函数 onClick 都将被执行时,如何同时将两个状态从 false 更新为 true?
主要组件导航栏
import Hamburger from "./Hamburger";
import ListMenu from "./ListMenu";
const Navbar = () => {
return (
<div className="navContainer">
<nav className="navigation">
<div className="logo">LOGO</div>
<ListMenu />
<Hamburger />
</nav>
</div>
);
};
ListMenu 组件
import React, { useState } from "react";
const ListMenu = () => {
const [showMobileMenu, setShowMobileMenu] = useState(false);
const menu = ["HOME", "PRODUCTS", "ABOUT", "CONTACT"];
const onClick = () => {
if (window.innerWidth < 757) {
setShowMobileMenu(!showMobileMenu);
}
};
return (
<ul className={`navList ${showMobileMenu ? "open" : ""}`}>
{menu.map((item) => (
<li key={item} className="listItem" onClick={onClick}>
{item}
</li>
))}
</ul>
);
};
export default ListMenu;
汉堡组件
import React, { useState } from "react";
const Hamburger = () => {
const [navBarStatus, setNavBarStatus] = useState(false);
const onClick = () => {
if (window.innerWidth < 757) {
setNavBarStatus(!navBarStatus);
}
};
return (
<div className="nav_bar">
<div
onClick={onClick}
className={`hamburger ${navBarStatus ? "is-active" : ""}`}
>
<span className="line"></span>
<span className="line"></span>
<span className="line"></span>
</div>
</div>
);
};
export default Hamburger;
【问题讨论】:
-
将共享状态移至
Navbar
标签: javascript reactjs