У меня есть FlatList, который отображает элемент
<FlatList
data = {this.state.color}
renderItem = {this.displayColor}
horizontal = {true}
keyExtractor = {item => item.color}
/>
displayColor
displayColor= ({ item }) => {
let btncolor = 'white'
if (item.color == this.state.fcolor){
btncolor = 'red'
}
return(
<Color color = {item.color} btncolor = {btncolor} colorChosen = {() =>this.chooseColor(item)}/>
)
}
selectColor
chooseColor(item){
this.setState({
fcolor:item.color
})
this.displayColor({item}) // NOT WORKING
}
Моя задача - показать текущую выбранную кнопку в компоненте Color красным цветом, приведенный выше код выполняет работу, но ему необходимо отобразить func displayColor, чтобы он проверил состояние с помощью item.color после selectColor func setstate fcolor, но я не мог вызвать функцию displayColor для обновления в функции chooseColor, как я могу это сделать или есть простой способ выполнить задачу. Спасибо





Вы должны передать опору extraData в свой FlatList
<FlatList
data = {this.state.color}
renderItem = {this.displayColor}
horizontal = {true}
extraData = {this.state.fcolor} //Add this line to your FlatList
keyExtractor = {item => item.color}
/>