Изменение псевдокласса при нажатии на кнопку (React)
Как изменить значение color для псевдокласса hover при нажатии на кнопку, чтобы после нажатия цвет при следующем наведении был другой?
CSS - код:
.r:hover {
color: red;
}
JSX-код:
import React from 'react'
import './Main.css';//CSS-файл
//компонент Main
export function Main() {
//функция для изменения цвета при наведении
function f(){
let r = document.getElementById("r");
//сюда хочу написать код
}
//элемент, для которого меняем цвет при наведении, и кнопка
return (
<div>
<p className='r' id='r'>Трансформатор</p>
<button onClick={f}>ОК</button>
</div>
);
}
export default Main;
Ответы (1 шт):
Автор решения: 4efirrr
→ Ссылка
Нужно использовать state для изменения стилей компонентов. Для решения этой задачи, создаем состояние isClicked
import React, { useState } from 'react'
import './Main.css'; // CSS-файл
//компонент Main
export function Main() {
const [isClicked, setIsClicked] = useState(false);
// change color on hover
function handleClick() {
setIsClicked(prevState => !prevState);
}
//элемент, для которого меняем цвет при наведении, и кнопка
return (
<div>
<p className={`r ${isClicked ? 'clicked' : ''}`} id='r'>Трансформатор</p>
<button onClick={handleClick}>ОК</button>
</div>
);
}
export default Main;