Я пытаюсь добавить новый класс в li, когда window.scrollY имеет правильное значение.До сих пор мне удавалось это сделать, но у меня возникла проблема, заключающаяся в том, что, когда я добавляю новый класс li на карту, все они получают его.Мне интересно, как я могу добавить новый класс только к одному элементу.
constructor(props) {
super(props);
this.state = {
newStyle: false,
};
this.handleStyleChange = this.handleStyleChange.bind(this)
}
componentDidMount() {
window.addEventListener('scroll', this.handleStyleChange, true);
}
componentWillUnmount() {
window.removeEventListener('scroll', this.handleStyleChange, true);
}
handleStyleChange() {
if (window.scrollY > 970 && window.scrollY < 1660) {
return this.setState({ newStyle: true })
}
return this.setState({ newStyle: false });
}
render() {
const { newStyle } = this.state
return (
<div className={active ? 'links active' : 'links'}>
{links.map((link, i) =>
<li
className={newStyle ? 'scrolled-li' : ''}
key={link.id}>
<a href={link.href}>{link.name}</a>
</li>)}
</div>
)
}
Я ожидаю добавить .scrolled-li только к первому li, когда handleStyleChange () будет истинным