Каждый выпадающий список привязан к this.state.table_dropdownOpen
, поэтому, если он открыт, все они открыты. Чтобы это работало, вам нужна переменная состояния, которая содержит все открытые значения. Я бы использовал карту для этого:
this.state = {
tableDropDownMap: new Map()
};
...
//component did mount, initialize the map
let updatedMap = new Map()
items.forEach(item => updatedMap.set(item.id, false)
...
<ButtonDropdown
isOpen={ this.state.tableDropDownMap.get(item.id) }
onClick={ () => console.log(item.id) } >
Тогда в вашем onClick вы в конечном итоге получите что-то вроде этого (давно я использовал компоненты класса, поэтому setState может быть не прав, новы получите суть.
onClick={() => {
let updatedMap = new Map(tableDropDownMap)
updatedMap.set(item.id, !updatedMap.get(item.id))
this.setState({tableDropDownMap: updatedMap})