как это получить в react js . добавлять классы
const slides = document.querySelectorAll('.slide');
for (const slide of slides) {
slide.addEventListener('click', () => {
clearActiveClasses();
slide.classList.add('active');
});
};
function clearActiveClasses() {
slides.forEach((slide) => {
slide.classList.remove('active');
});
};
Ответы (1 шт):
Автор решения: Konstantin Modin
→ Ссылка
Можно хранить состояние активного слайда в хуке useState. И затем в зависимости от состояния добавлять или убирать класс. Получается примерно так:
// import React from "react";
const App = () => {
const [activeSlide, setActiveSlide] = React.useState(0);
return (
<div>
{[...Array(10)].map((_, idx) => {
const isActive = activeSlide === idx;
return (
<button
key={idx}
className={isActive ? "active" : ""}
style={{ backgroundColor: isActive ? "red" : "white" }}
onClick={() => setActiveSlide(idx)}
>
<div>Slide #: {idx}</div>
<div>isActive = {isActive.toString()}</div>
</button>
);
})}
</div>
);
};
// export default App;
ReactDOM.render(<App />, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.1/umd/react-dom.production.min.js"></script>
<div id="root"></div>