Я предполагаю, что вы хотите изменить состояние боковой панели, нажав кнопку у другого родного / дочернего элемента родственного компонента.
, если это так, вам нужно установить хук useState. в вышестоящем родителе, затем передайте состояние / метод установки в качестве опоры детям, которые будут его использовать.
Вот пример того, что я имею в виду.
Родительский компонент
function parent() {
// the sidebar state
const [sidebar, setSidebar] = useState(false);
// helper function that toggles state
function toggle() {
setSidebar(!sidebar);
}
return (
<section className="Parent">
{ /* Conditional Render */
sidebar ?
<Navbar stateManager={{toggle}} />
: <HamburgerIcon stateManager={{toggle}} />
}
</section>
)
Навбар / HumburgerIcon
function Navbar({stateManager}) {
// you now passed state and it's set method to the child
const {toggle} = stateManager;
return (
<div onClick={toggle}>
component content
</div>
}
Вы можете поместить их все в один файл и при этом выполнить то же самое.