Обновленный код
Измените переменную состояния следующим образом:
state = {
dropDownState: [false, false]
};
Поскольку у вас есть только два li > div
, массив содержит два элемента, если менюэлементы увеличиваются, увеличивайте их.
Тогда элементы div будут выглядеть как
<div className={dropMenu[0]} aria-labelledby="navbarDropdown">
и <div className={dropMenu[1]} aria-labelledby="navbarDropdown">
Каждая из привязок функций будет выглядеть как
onClick={() => this.handleDropdown(0)}
onClick={() => this.handleDropdown(1)}
Фактическая функция затем изменится на
handleDropdown = (menuIndex) => {
let newMenuState = this.state.dropDownState.map((val, index) => {
if(index === menuIndex) {
return !val
} else return val
});
this.setState({ dropDownState: newMenuState })
};
Обратите внимание, что я не запускал код с моей стороны, но вы должны понять.
Старый ответ
Вместо вызова функции свяжите значение с функцией:
Изменить
onClick={this.handleDropdown}
К
onClick={() => this.handleDropdown()}