如何防止React Native中的多个警报?

Lui*_*izo 5 javascript lifecycle alerts react-native

有没有办法在发送另一个之前判断屏幕上是否已经有Alert.alert()?

我有这个功能:

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

ComponentDidUpdate(){
  this.CheckInternet();
}
Run Code Online (Sandbox Code Playgroud)

问题是我在该函数内部还有其他事情,我只是写了相关的代码,所以我不能把这个CheckInternet函数带到外面ComponentDidUpdate.

问题是组件在获取后会更新两次json,因此会发送两次警报.我想通过一个条件来防止同时发出两个警报,这个条件会让我知道屏幕上是否有警报.我似乎没有在Alert文档中找到类似的东西.有任何想法吗?

The*_*zel 6

试试这个:

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();
}
Run Code Online (Sandbox Code Playgroud)