Есть два компонента Drawer и AppBar. Панель приложения имеет кнопку меню, и она должна вызывать событие, которое открывает ящик, я застрял в том, как это сделать, я попытался добавить "onClick = {toggleDrawer ('left', true)}" линия, которая существует в кнопке от Drawer до IconButton в TopBar, и это пошло не так. Как сказать TopBar, что «toggleDrawer» - это функция из MyDrawer?
MyDrawer.tsx
import React from 'react';
import Drawer from '@material-ui/core/Drawer';
export default function MyDrawer() {
const classes = useStyles();
const [state, setState] = React.useState({
top: false,
left: false,
bottom: false,
right: false,
});
type DrawerSide = 'top' | 'left' | 'bottom' | 'right';
const toggleDrawer = (side: DrawerSide, open: boolean) => (
event: React.KeyboardEvent | React.MouseEvent,
) => {
if (
event.type === 'keydown' &&
((event as React.KeyboardEvent).key === 'Tab' ||
(event as React.KeyboardEvent).key === 'Shift')
) {
return;
}
setState({ ...state, [side]: open });
};
//drawer list of links
return (
<div>
{/* <Button onClick={toggleDrawer('left', true)}>Open Left</Button> */}
<Drawer open={state.left} onClose={toggleDrawer('left', false)}>
{sideList('left')}
</Drawer>
</div>
);
TopBar.tsx
import MyDrawer from '../Drawer/Drawer'
export default function TopBar() {
const renderDrawer = (
<OlimpoDrawer/>
);
return (
<div className={classes.grow}>
<AppBar position="static">
<Toolbar>
<IconButton
edge="start"
className={classes.menuButton}
color="inherit"
aria-label="abrir menu"
>
<MenuIcon />
</IconButton>
//Toolbar features
</Toolbar>
</AppBar>
{renderDrawer}
</div>
);
}