Navbar-toggler opens but doesn't close after pressing hamburger button (React and Bootstrap 5)

29 views Asked by At

When my web page is in mobile mode, if the navbar-toggler button is pressed, the collapsible navbar-collapse opens without problems.But if the "hamburger" button is pressed again, it does not close.

App.js:

import logo from './logo.svg';
import './App.css';

import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap/dist/js/bootstrap.min.js';
import games from './datagames';
import rules from './datarules';
import React, {useCallback, useState} from "react";
//import { Button } from 'react-bootstrap';

... code ...

return (
  <div>
  <nav className="navbar navbar-expand-lg bg-dark navbar-dark sticky-top">
    <div className="container-fluid">
      <a className="navbar-brand" href="#">STACK'O</a>
      <button className="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#collapseNavbar" aria-controls="collapseNavbar" aria-expanded="false" aria-label="Toggle navigation">
        <span className="navbar-toggler-icon"></span>
      </button>
      <div className="collapse navbar-collapse" id="collapseNavbar">
        <ul className="navbar-nav me-auto mb-2 mb-lg-0">
          <li className="nav-item">
            <a className="nav-link disabled" href="#">Link</a>
          </li>
          <li className="nav-item dropdown">
            <a className="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">Categories</a>
            <RenderCategories categories={CATEGORIES} onFilterChange={handleFilterChange} />
          </li>
          <li className="nav-item custom-range">
            <input type="range" className="form-range" min="1" max="10" step="1" id="rangeInputPlayers" value={numberPlayers} onChange={handlePlayersChange} />
            <p className="navbar-text">Players: {numberPlayers}</p>
          </li>
          <li className="nav-item custom-range">
            <input type="range" className="form-range" min="5" max="20" step="1" id="rangeInputDuration" value={selectedDuration} onChange={handleDurationChange} />
            <p className="navbar-text">Minutes: {selectedDuration}</p>
          </li>
        </ul>
      </div>
    </div>
  </nav>
... more code ...

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <!-- Theme Made By www.w3schools.com - No Copyright -->
  <title>STACK'O</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" 
    rel="stylesheet" 
    integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" 
    crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  <link rel="stylesheet" href="./src/index.css" type="text/css">
  <script defer src="https://code.jquery.com/jquery-3.7.0.js"
    integrity="sha256-JlqSTELeR4TLqP0OG9dxM7yDPqX1ox/HfgiSLBj8+kM="
    crossorigin="anonymous"></script>
  <script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" 
    integrity="sha384-HwwvtgBNo3bZJJLYd8oVXjrBZt8cqVSpeBNS5n7C8IVInixGAoxmnlMuBnhbgrkm" 
    crossorigin="anonymous"></script>
</head>
<body>
  <div id="root"></div>
</body>
</html>

My website is created with react and bootstrap 5: https://stackoproject.netlify.app/

  • I tried changing imports and links via CDN as shown in this video: https://www.youtube.com/watch?v=zigBDPYIHc8&t=27s
  • Changing all css related to the navbar
  • Of course I've tried other stackoverflow posts and it looks like my problem is very specific
  • I have tried to program a useState() to force the closing and it has not helped either
0

There are 0 answers