Как создать popup-диалог в методе? - PullRequest
0 голосов
/ 08 октября 2019

Я создаю всплывающее диалоговое окно в методе, подобном этому:

_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>
  )
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...