有没有办法在发送另一个之前判断屏幕上是否已经有Alert.alert()?
我有这个功能:
CheckInternet(){
if(this.props.json.undefined){
Alert.alert("Check your internet connection");
}
}
ComponentDidUpdate(){
this.CheckInternet();
}
问题是我在该函数中已经完成了其他事情,我只是编写了相关代码,因此我无法将CheckInternet
函数放在ComponentDidUpdate
之外。
问题是组件在获得json
后会更新两次,因此会发送两次警报。我想通过一个条件来防止同时发出两个警报,这个条件会让我知道屏幕上是否有警报。我似乎没有在Alert文档中找到类似的内容。有什么想法吗?
答案 0 :(得分:5)
试试这个:
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();
}