Как предотвратить множественные оповещения в React Native?

Есть ли способ узнать, был ли уже Alert.alert() на экране перед отправкой другого?

У меня есть эта функция:

CheckInternet(){
  if(this.props.json.undefined){
    Alert.alert("Check your internet connection");
  }
}

ComponentDidUpdate(){
  this.CheckInternet();
}

Дело в том, что у меня есть другие вещи, выполняемые внутри этой функции, я просто написал соответствующий код, поэтому я не могу взять CheckInternet функция снаружи ComponentDidUpdate,

Проблема в том, что компонент обновляется дважды после получения jsonследовательно, отправив это предупреждение дважды. Я хотел бы предотвратить одновременное получение двух предупреждений, используя условие, которое сообщит мне, если на экране уже есть предупреждение или нет. Я не вижу ничего подобного в документации Alert. Есть идеи?

1 ответ

Решение

Попробуй это:

CheckInternet(){
    if (!this.alertPresent) {
        this.alertPresent = true;
        if (this.props.json.undefined) {
            Alert.alert("", "Check your internet connection", [{text: 'OK', onPress: () => { this.alertPresent = false } }], { cancelable: false });
        } else {
            this.alertPresent = false;
        }
    }
}

ComponentDidUpdate(){
  this.CheckInternet();
}
Другие вопросы по тегам