#javascript #html #reactjs
Вопрос:
Я хочу изменить непрозрачность headerInside
элемента с помощью React.
Мне пришла в голову эта идея, но с использованием ванильного JS.
Как написать его с помощью крючков React?
const menuHandler = () => {
const element = document.querySelector('.headerInside');
if (element.style.opacity === "1") {
element.style.opacity = "0";
} else {
element.style.opacity = "1";
}
}
return()
Раздел выглядит следующим образом:
<header>
<button onClick={menuHandler} className="brgr">test</button>
<div className="headerInside">
...
</div>
</header>
Ответ №1:
В ответе Зрны был смысл. Я хочу немного изменить это .
...
<button onClick={() => setOpacity(1-opacity)} className="brgr">test</button>
...
Ответ №2:
Вы можете сделать что-то подобное, используя крючки React:
const [opacity, setOpacity] = useState(0);
return (
<header>
<button onClick={() => setOpacity(1)} className="brgr">test</button>
<div style={{ opacity }}>
...
</div>
</header>
);
Комментарии:
1. Можете ли вы объяснить, почему это так работает? Я действительно не понимаю ,,style={{ непрозрачность }}» часть. Откуда он знает, что должен установить непрозрачность на 1?
2. @NatanKrakowiak это аббревиатура, если свойство и переменная имеют одно и то же имя.
style={{ opacity: opacity }}
==style={{ opacity }}