Как предотвратить множественные оповещения в 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();
}