Вы должны избегать касания DOM самостоятельно, давайте сделаем это за вас.
Вы хотите сохранить сигнал в состоянии, сообщающем, активен ли элемент в списке, и использоватьэтот сигнал, чтобы установить класс или нет в вашей фазе рендеринга:
state = {
activeId: null // nothing selected by default, but this is up to you...
}
handleClick(event, id) {
this.setState({ activeId: id })
}
render() {
<ul className="menu-list">
{
this.props.getList.map(list =>
<Link key={ list.id }
className={ this.state.activeId === list.id && 'is-active' }
onClick={ this.handleClick.bind(this, list.id) }
to="">
{ list.title }
</Link>
)
}
</ul>
}
Таким образом, на каждом render
, id
каждого элемента в вашей getList
опоре сравнивается с тем, который высохраняйте в своем состоянии, затем:
- если это активный идентификатор, ему присваивается класс 'is-active';
- , если он не активный, он очищает предыдущий
className
(в случае, если он был "активен";
Надеюсь, это поможет:)