ladjs / react-native-loading-spinner-overlay

:barber: React Native loading spinner overlay
MIT License
1.58k stars 173 forks source link

Spinner not hiding when using with alert #61

Closed fahadhaq closed 6 years ago

fahadhaq commented 6 years ago

Hi, Having an issues if I display the spinner and then call my api, when I get back the result from the api I change my state to hide the spinner. The problem is that if I show an alert to display the error the spinner doesnt hid. It just keeps spinning and cant cancel or anything.

Here is my code

ValidatePromoCode() {
    if (this.state.email != '') {
      this.setState({
        visible: true,
        spinnerText: 'Validating email address'
      });

      //Make the API call
      StudentApi.SetupBuyOnline(this.state.email, DeviceInfo.getUniqueID(), DeviceInfo.getSystemName())
        .then((responseData) => {
          this.setState({
            visible: false,
            spinnerText: ''
          });

          alert(data);
    }
    else {
      this.props.navigation.navigate('GetRegisteredScreen')
    }
  }

Can some one please let me know what I am doing wrong? if i dont have the alert the spinner seems to behave correctly. Thanks in advance

Daky commented 6 years ago

I will suggest you try to wrap "alert" with setTimeout().

setTimeout(() => { Alert.alert(I18n.t('MESSAGE'),I18n.t('ACCOUNT_OR_PASSWORD_ERROR')) }, 100);

rupalpatel0008 commented 6 years ago

@Daky I have put the setTimeout and its still not working

fahadhaq commented 6 years ago

The above solution is working on iOS. Thanks for your help. The problem is with react native https://github.com/joinspontaneous/react-native-loading-spinner-overlay/issues/30