Skip to content
Advertisement

Why is my React MUI component not showing?

I am trying to use the MUI drawer component alongside with React router to display a simple navbar on the left of the page. I am very new to react and am not sure what I am doing wrong as the code compiles fine. The other two pages “Signup” and “Login” are showing up fine. The way the project is structured is I have a separate folder in Components for each page of the website. Then in app.js there is a router which should have a link to each page. I do not have components separated and am trying to have a Drawer as well as other components all in one page titled Dashboard.js

import './App.css';

//Importing Components
import Login from "./Components/Login/Login.js";
import Signup from "./Components/SignUp/Signup.js";
import Dashboard from "./Components/Dashboard/Dashboard.js";

function App() {
  return (
    
    <BrowserRouter>
      <Routes>
        <Route
          path="/login"
          element={
            <div className="App">
              <Login/>
            </div>
              
          }  
        />
         <Route
          path="/dashboard"
          element={
            <div className="App">
              <Dashboard/>
            </div>
              
          }  
        />
         <Route
          path="/Signup"
          element={
            <div className="App">
            
            <Signup/>

            </div>
          }
        />
      </Routes>
    </BrowserRouter>
    
  );

}
export default App;
import {Drawer, Box, Typography, IconButton} from "@mui/material";
import MenuIcon from "@mui/icons-material/Menu";
import {useState} from 'react';


const Dashboard = () => {
const [isDrawerOpen, setIsDrawerOpen] = useState(false)
    return (
        <>
        <IconButton 
        size = 'large' 
        edge = 'start' 
        color = 'inherit' 
        aria-label = 'logo' 
        onCLick = {() => setIsDrawerOpen(true)}
        >
        <MenuIcon/>
        </IconButton>
       
        <Drawer 
        anchor = 'left' 
        open = {isDrawerOpen} 
        onClose={() => setIsDrawerOpen(false)}>
           
            <Box 
            p={2} 
            width = '250px' 
            textAlign = 'center' 
            role= 'presentation'
            >
            
            <Typography 
            variant = 'h6' 
            component ='div'>

            </Typography>
            </Box>
        </Drawer>
        </>
    )


}
export default Dashboard;

Advertisement

Answer

Change your code to this

 const handleDrawerOpen = () => {
    setIsDrawerOpen(true);
  };


  <IconButton
        size="large"
        edge="start"
        color="inherit"
        aria-label="logo"
        onClick={handleDrawerOpen}
      >
        <MenuIcon />
      </IconButton>

I created a codesandbox from your code and onClick works there

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement