【发布时间】:2018-10-06 20:21:25
【问题描述】:
我正在使用 FlatList 来呈现项目。每个项目都是一个单独的卡片样式组件。每个项目都有onPress 更改组件的事件处理程序。
这是我的平面列表。
<FlatList
data={data}
renderItem={({ item }) => {
return <CardItem courseData={item} />
}}
ref={this.flatList}
keyExtractor={
(item) => { return item.content_address }
}
initialNumToRender={10}
showsVerticalScrollIndicator={false}
style={{ marginTop: 50 }}
/>
这是 CardItem 组件
constructor{
this.state = {change:false}
}
_onPress = () => {
this.setState({change: true})
}
render() {
if (this.state.change) {
return (//return changes)
} else {
return (
<TouchableOpacity
ref="myRef"
activeOpacity={0.5}
onPress={this._onPress}>
...
</TouchableOpacity>
)
}
}
现在我想要的是一次只更改一个卡片组件。
因此,当用户触摸第一个卡片组件时,它应该会发生变化。但是当用户触摸第二张卡片组件时,第一张应该变回之前的状态,第二张应该改变。
我看到了 FlatList 文档here,但不确定哪些方法可以帮助我?
【问题讨论】:
标签: reactjs react-native react-native-android react-native-ios react-native-flatlist