Модули React CSS не применяют активный класс к меню панели навигацииCSS

Разбираемся в CSS
Ответить
Anonymous
 Модули React CSS не применяют активный класс к меню панели навигации

Сообщение Anonymous »

Я пытаюсь переключить активный класс в меню панели навигации в компоненте React с помощью модулей CSS, но класс не применяется должным образом. Меню должно открываться, когда я нажимаю кнопку-гамбургер, но активный класс, похоже, не работает.
Вот настройка:

Код: Выделить всё

import { useState } from "react";
import styles from './Navbar.module.css';

export function Navbar() {
const [isActive, setIsActive] = useState(false);

const toggleActiveClass = () => {
setIsActive(!isActive);
console.log('isActive:', isActive); // Check if the state is toggling
console.log('styles:', styles); // Check if the styles are correctly imported
};

const removeActive = () => {
setIsActive(false);
};

return (



[url=#home]Dev. [/url]
[list]
[*]
[url=#home]Home[/url]

[*]
[url=#catalog]Catalog[/url]

[*]
[url=#all-products]All products[/url]

[*]
[url=#contact]Contact[/url]

[/list]








);
}
Вот CSS

Код: Выделить всё

.navbar {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #333;
padding: 10px;
}

.logo {
color: white;
text-decoration: none;
}

.navMenu {
list-style: none;
display: flex;
flex-direction: row;
gap: 20px;
position: absolute;
top: 70px;
left: -100%;
transition: 0.7s ease-in-out;
background-color: aliceblue;
width: 100%;
padding: 10px;
}

.active {
left: 0; /* Make sure this is applied when active */
}

.navLink {
text-decoration: none;
color: black;
}

.hamburger {
display: none;
flex-direction: column;
cursor: pointer;
}

.bar {
width: 25px;
height: 3px;
background-color: #fff;
margin: 4px 0;
transition: 0.4s;
}

@media (max-width: 768px) {
.hamburger {
display: flex;
}

.navMenu {
flex-direction: column;
left: -100%; /* Initially off-screen */
position: absolute;
}

.navMenu.active {
left: 0; /* Slide in when active */
}
}
Что я пробовал:
  • Я проверил состояние с помощью console.log(isActive) и убедился, что
    Состояние переключается правильно.
  • Я проверил импортированные классы CSS
    с помощью console.log(styles) и подтвердил, что активный класс
    импортирован.
  • Я гарантировал, что активный класс применяется
    условно в JSX с помощью ${isActive ? style.active : ''}.
Ожидаемое поведение:
Когда я нажимаю на меню-гамбургер, активный класс должен быть применен к navMenu, что должно изменить значение свойства left с -100% на 0 и заставить меню выдвигаться вперед.
Текущее поведение:Несмотря на то, что состояние переключается и активный класс должен быть применен, меню не выдвигается, как ожидалось. Похоже, что активный класс не применяется к navMenu.
Вопросы:
  • < li>Что-то не так с тем, как я применяю классы с использованием CSS
    модулей в React?
  • Может ли проблема заключаться в том, как модули CSS работают в этой конкретной настройке, или это как-то связано с тем, как я обрабатываю состояние?


Подробнее здесь: https://stackoverflow.com/questions/790 ... avbar-menu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «CSS»