react-native - React Native 渲染组件
问题描述
我有一个呈现项目的 FlatList
<FlatList
data={this.state.color}
renderItem={this.displayColor}
horizontal={true}
keyExtractor={item => item.color}
/>
显示颜色
displayColor= ({ item }) => {
let btncolor = 'white'
if(item.color == this.state.fcolor){
btncolor = 'red'
}
return(
<Color color={item.color} btncolor ={btncolor} colorChosen ={() =>this.chooseColor(item)}/>
)
}
选择颜色
chooseColor(item){
this.setState({
fcolor:item.color
})
this.displayColor({item}) // NOT WORKING
}
我的任务是用红色在 Color 组件中显示当前选定的 Button,上面的代码正在完成工作,但它需要渲染 func displayColor,因此它将在 chooseColor func setstate fcolor 之后使用 item.color 检查状态,但我无法调用 displayColor 函数在选择颜色函数中刷新,我该怎么做,或者有一种简单的方法来完成任务。谢谢你
解决方案
您应该将 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}
/>
推荐阅读
- sql - 数据类型等效项:MS Access 表 ↔ 'CREATE TABLE' 查询 ↔ ODBC SQL
- java - 使用 switch 语句设置对象变量
- vb.net - 作为图形对象的球和曲线之间的碰撞
- php - PHP包括在错误的地方搜索
- python - OSX swift no module named 6
- windows - 为 QMainWindow 禁用 QSizeGrip
- html - 如何在不重新加载的情况下更改 HTML5 视频的 src?
- python - 无法拆分文本文件中的每一行
- python - 尝试将新数据插入到 mongo db 中,该数据库可能故意包含重复项
- mysql - sql查询 | 处理具有潜在空值的多个 where 条件