Я использую 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>
)
}
}
Теперь мне нужно изменить только один компонент карты ввремя.
Так что, когда пользователь касается 1-го компонента карты, он должен измениться.Но когда пользователь касается второго компонента карты, 1-й должен вернуться к предыдущему состоянию, а 2-й должен измениться.
Я видел документацию FlatList здесь , но не уверен, какие методы могут мне помочь?