Спасибо, обновление состояния было немного сложным, массив элементов, который я использовал, был объявлен вне компонента класса, таким образом, было недостаточно использовать только «активный» массив с индексами, которые должны менять цвет в состоянии.Я должен был отобразить массив элементов в таком состоянии:
state = {
items: items.map(e => ({
...e,
active: false,
}))
}
, тогда я мог манипулировать активным состоянием элемента, который хотел изменить, следующим образом:
onPressItem(index) {
const { items } = this.state
const newItems = [...this.state.items]
if (items[index].active) {
newItems[index].active = false
} else {
newItems[index].active = true
}
this.setState({ items: newItems })
}
и измените цвет так:
style={{
backgroundColor: item.active
? 'rgba(26, 211, 132, 0.7)'
: 'rgba(0,0,0,0.2)',
}}