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