Topic: React Navbar just disappears on small screens instead of opening hamburger bar
                  
                  brandon cox
                  priority
                  asked 3 years ago
                
Expected behavior When the screen shrinks to a smaller size, or on mobile the navbar turns into a sidebar with a bars button to toggle, per the example.
Actual behavior Navbar disappears when the screen is small.
Resources (screenshots, code snippets etc.)
import React, { useState, useEffect } from 'react';
import 'mdb-react-ui-kit/dist/css/mdb.min.css';
Import { MDBBtn, 
MDBContainer,
MDBNavbar,
MDBNavbarBrand,
MDBNavbarToggler,
MDBIcon,
MDBNavbarNav,
MDBNavbarItem,
MDBNavbarLink,
MDBDropdown,
MDBDropdownToggle,
MDBDropdownMenu,
MDBDropdownItem,
MDBCollapse, } from 'mdb-react-ui-kit';
    import Link from 'next/link';
    import logo from '../assets/logos/logo.svg'
    import logoAlternate from '../assets/logos/logo-alternate.svg'
    import { useRouter } from 'next/router'
    //import { Navbar, Button, Form, FormControl, Nav, NavDropdown, Container, Offcanvas, Accordion } from 'react-bootstrap'
import MediaQuery from 'react-responsive'
const NavBar = () => {
const [mounted, setMounted] = useState(false)
const [isOpen, setIsOpen] = useState(false);
const [scrollTop, setScrollTop] = useState(0)
const [scrolling, setScrolling] = useState(true);
const router = useRouter()
const headerAlternatePages = [
    "/",
    "/admin",
]
useEffect(() => {
    setMounted(true)
    const onScroll = e => {
        setScrollTop(e.target.documentElement.scrollTop);
        setScrolling(e.target.documentElement.scrollTop > scrollTop);
    };
    window.addEventListener("scroll", onScroll);
    return () => window.removeEventListener("scroll", onScroll);
}, [scrolling])
const [showNav, setShowNav] = useState(false);
return (
    <>
        {mounted &&
            <>
                <MediaQuery minWidth={1024}>
                    <MDBNavbar 
                        fixed="top"
                        bgColor={scrollTop == 0 && headerAlternatePages.includes(router.asPath) ? "transparent" : "light"}
                        expand="sm"
                    >
                        <MDBContainer fluid>
                            <MDBNavbarLink passHref href="/">
                                <MDBNavbarBrand className="me-5" >
                                    <img width="108px" src={scrollTop == 0 && headerAlternatePages.includes(router.asPath) ? logoAlternate.src : logo.src} alt="" />
                                </MDBNavbarBrand>
                            </MDBNavbarLink>
                            <MDBNavbarToggler
                                data-mdb-target='#navbarSupportedContent'
                                aria-controls='navbar'
                                data-mdb-toggle="collapse"
                                aria-expanded='false'
                                aria-label='Toggle navigation'
                                onClick={() => setShowNav(!showNav)}
                                >
                                <MDBIcon icon='bars' fas />
                                </MDBNavbarToggler>
                                <MDBCollapse navbar show={showNav} id='navbarSupportedContent'>
                                <MDBNavbarNav right className='ms-auto mb-2 mb-lg-0'>
                                    <MDBNavbarItem>
                                    <MDBNavbarLink active aria-current='page' href='/mypaths'>
                                        My Path
                                    </MDBNavbarLink>
                                    </MDBNavbarItem>
                                    <MDBNavbarItem>
                                    <MDBDropdown>
                                        <MDBDropdownToggle tag='a' className='nav-link'>
                                        Browse Opportunities
                                        </MDBDropdownToggle>
                                        <MDBDropdownMenu>
                                        <MDBDropdownItem link>Find My Path</MDBDropdownItem>
                                        <MDBDropdownItem link>Browse Open Positions</MDBDropdownItem>
                                        </MDBDropdownMenu>
                                    </MDBDropdown>
                                    </MDBNavbarItem>
                                    <MDBNavbarItem>
                                    <MDBDropdown>
                                        <MDBDropdownToggle tag='a' className='nav-link'>
                                        Training
                                        </MDBDropdownToggle>
                                        <MDBDropdownMenu>
                                        <MDBDropdownItem link>Career Path Training</MDBDropdownItem>
                                        <MDBDropdownItem link>Asbury Learning Portal</MDBDropdownItem>
                                        <MDBDropdownItem link>Leaderboard</MDBDropdownItem>
                                        </MDBDropdownMenu>
                                    </MDBDropdown>
                                    </MDBNavbarItem>
                                    <MDBNavbarItem>
                                    <MDBDropdown>
                                        <MDBDropdownToggle tag='a' className='nav-link'>
                                        My Team
                                        </MDBDropdownToggle>
                                        <MDBDropdownMenu>
                                        <MDBDropdownItem link>View My Team</MDBDropdownItem>
                                        <MDBDropdownItem link>My Team's Paths</MDBDropdownItem>
                                        </MDBDropdownMenu>
                                    </MDBDropdown>
                                    </MDBNavbarItem>
                                </MDBNavbarNav>
                                <form className='d-flex input-group w-auto'>
                                    <input type='search' className='form-control' placeholder='Type query' aria-label='Search' />
                                    <MDBBtn color='primary'>Search</MDBBtn>
                                </form>
                                </MDBCollapse>
                            </MDBContainer>
                            </MDBNavbar>
                </MediaQuery>
            </>
        }
    </>
);
}
export default NavBar;
FREE CONSULTATION
Hire our experts to build a dedicated project. We'll analyze your business requirements, for free.
Status
              Answered
Specification of the issue
              - ForumUser: Priority
- Premium support: Yes
- Technology: MDB React
- MDB Version: MDB5 4.2.0
- Device: Mac
- Browser: Chrome/Edge
- OS: MacOS
- Provided sample code: No
- Provided link: No
Wojciech Staniszewski staff commented 3 years ago
Could you create a snippet with this example?