1

I have a very simple react app going right now. I am trying to add a static navigation bar that renders different components when links are clicked. The routes are set up in the App.jsx component, and all the links are within the Navigation.jsx component. When I click the links, the url changes but does not render any component. If I change the closing Navigation route tag to not wrap all of my routes, it works, but does not render the nav bar each component.

I would like to have the navbar constantly rendered, and the components change with each link click.

This is my App component right now.

function App() {
  return (
    <div>
      <Routes>
        <Route path='/' element={<Navigation />} >
          <Route index element={<Home />} />
          <Route path='projects' element={<Projects />} />
          <Route path='resume' element={<Resume />} />
        </Route>
      </Routes>
    </div>
  );
}

export default App;

And this is my Navigation

export default function Navigation() {
  const [burgerClass, setBurgerClass] = useState('burger-bar unclicked');
  const [menuClass, setMenuClass] = useState('menu hidden');
  const [isMenuClicked, setIsMenuClicked] = useState(false);

  const updateMenu = () => {
    if (!isMenuClicked) {
      setBurgerClass('burger-bar clicked');
      setMenuClass('menu visable');
    } else {
      setBurgerClass('burger-bar unclicked');
      setMenuClass('menu hidden');
    }
    setIsMenuClicked(!isMenuClicked);
  }

  return (
    <div className='navigation'>
      <nav>
        <div className='burger-menu' onClick={updateMenu}>
          <div className={burgerClass}></div>
          <div className={burgerClass}></div>
          <div className={burgerClass}></div>
        </div>
        <Link className='logo-container' to='/'>
          <h1>JESSE GOODRUM</h1>
        </Link>
        
        <div className='social-media-links-container'>
          <a href='http://www.linkedin.com/in/jessegoodrum/'>
            <i className="fa-brands fa-linkedin"></i>
          </a>
          <a href='https://github.com/jessegoodrum/'>
            <i className="fa-brands fa-github"></i>
          </a>
        </div>  
      </nav>

      <div className={menuClass}>
        <ul>
          <li>
            <Link className='nav-link' to ='/projects'>PROJECTS</Link>
          </li>
          <li>
            <Link className='nav-link' to='/resume'>RESUME</Link>
          </li>
        </ul>
      </div>
    </div>
  )
}
Drew Reese
  • 165,259
  • 14
  • 153
  • 181

0 Answers0