Задать вопрос
@arttstyle
web-макака

Как добавлять/удалять класс при наведении?

items.map( el => <div className={добавить класс сюда} onMouseEnter={??????}><img src={el}/></div> )

рендерю список с картинками
нужно при onMouseEnter добавлять класс и сохранять его активным до следующего ивента onMouseEnter на другом элементе
а потом удалять у предыдущего и добавлять к текущему
как это сделать?
  • Вопрос задан
  • 854 просмотра
Подписаться 1 Средний Комментировать
Решение пользователя Чипекве К ответам на вопрос (2)
XanXanXan
@XanXanXan
Нужно сохранять в состоянии элемент при наведении на него через (onMouseEnter).

А в className проверять, совпадает ли этот элемент и тот, что в состоянии. И если совпадает, добавлять ему нужный класс, иначе null.

const [currentActive, setActive] = useState()
Внутри скобок useState указываем элемент, если нужно задать его по умолчанию активным или оставляем их пустыми.

className={currentActive === el ? "active" : null}
В элементе прописываем выбор класса в зависимости от состояния.

onMouseEnter={() => setActive(el)}
Меняем состояние при наведении.
Ответ написан