Я создаю всплывающее диалоговое окно в методе, подобном этому:
_PopUp=(item) => {
return (
<View>
<Dialog
height={100}
width={0.8}
visible={this.state.Visiable}
dialogAnimation={new ScaleAnimation({
initialValue: 0,
useNativeDriver: true,
})}
<DialogContent>
<Text>{item.Name} {item.Surname}</Text>
</DialogContent>
</Dialog>
</View>
)
}
, и я вызываю эту функцию здесь в другом методе:
_renderItems() {
return (
<View>
<FlatList
columnWrapperStyle={{ flex: 1, justifyContent: 'space-around' }}
data={this.props.workerListSigned}
numColumns={3}
keyExtractor={(workerListSigned) => workerListSigned.ID.toString()}
renderItem={({ item }) => {
return (
<TouchableOpacity onLongPress={() => this.setState({ Visiblee: true }, () => this._PopUp(item))}>
<View style={styles.flatListItemStyle}>
<Text style={{ textAlign: 'center' }}>{item.Name} {item.Surname}</Text>
<Text style={{ textAlign: 'center' }}>{item.Duty}</Text>
</View>
</TouchableOpacity>
)
}}
/>
</View>
)
}
Если мне это нравится, всплывающее окно не появляется. Когда я использую метод this._PopUp в render, он работает. но мне нужно использовать в flatList. Как я могу это сделать?
render(){
return(
<View>
{this._PopUp()}
</View>
)
}