【发布时间】:2019-07-17 00:50:52
【问题描述】:
我试图用反应原生 FlatList 项目制作按钮,这意味着当我点击它们时它们会改变颜色。 这是由 renderItem 属性渲染的函数:
renderRows(item, index) {
return (
<TouchableOpacity
key={index}
style={[styles.item, this.calculatedSize()]}
onPress={() => this.onPressImage(index)}
>
<Image
style={[styles.picture]}
source={{ uri: item.uri }}
/>
<View
style={[
styles.imageTextContainer,
{
backgroundColor:
_.indexOf(this.active, index) === -1
? 'rgba(0,0,0,0.2)'
: 'rgba(26, 211, 132, 0.7)',
},
]}
>
<Text style={styles.imageText}>{item.title}</Text>
</View>
</TouchableOpacity>
)
}
哦,是的,我正在使用 loadash 来获取索引。 函数“onPressImage(索引)”工作正常,在“this.active”(数组)中我总是有我想改变颜色的元素的位置(整数), 但是什么也没发生,你唯一能看到的是 touchableOpacity 的响应。我做错了什么?
【问题讨论】:
-
您正在影响某些东西的外观,您需要更新状态,因为这将触发重新渲染。因此,最好将活动值数组存储在 state 中。
标签: react-native react-native-flatlist