Как перезагрузить текущую страницу после вызова API в Иони c 4 - PullRequest
0 голосов
/ 11 марта 2020

Я хочу перезагрузить страницу после вызова API в ioni c 4.

При входе в систему я сохраняю значение пользователя в localStorage: localStorage.setItem('userData', JSON.stringify(userDeatil));

После входа он переходит к Страницы вкладок, В tab1 я проверяю, одобрен ли пользователь администратором или нет, и в соответствии с этим значением сообщение отображается на экране.

На вкладке 1 я использую ион-освежитель , чтобы обновить sh страницу и вызвать API, чтобы проверить, одобрен пользователь или нет.

После обновления страницы вызывается API, если пользователь утвержден, то состояние изменяется в локальном хранилище, но мой пользовательский интерфейс не изменяется. После закрытия приложения пользовательский интерфейс изменяется или, если я проверяю его в localhost, после обновления этой страницы.

Как обновить интерфейс сразу после вызова API.

Эта проблема решается путем добавления:

window.location.reload();

Но новая проблема заключается в том, что после перезагрузки страницы на некоторое время появляется белый экран.

Как убрать этот белый экран?

. html

<ion-refresher #refresherRef slot="fixed" (ionRefresh)="load($event)">
    <ion-refresher-content
    pullingIcon="arrow-dropdown"
    pullingText="Pull to refresh"
    refreshingSpinner="circles"
    refreshingText="Refreshing...">
    </ion-refresher-content>
  </ion-refresher>

  <div *ngIf="userData.userStatus == 2" class="emplty_class">
    Your request has been pending.
  </div>

  <div *ngIf="userData.userStatus == 1">
    Your request is approved.
  </div>

.ts

ngOnInit() {
    console.log('this.router.url', this.router.url);
    // alert(this.router.url);
    this.platform.backButton.subscribe(() => {
      if (this.router.url == '/tabs/tab1') {
        this.closingApp();
      }
    });
  }

ionViewWillEnter() {
    const data = JSON.parse(localStorage.getItem('userData'));
    this.usderDetails = data;
    for (let data of this.usderDetails) {
      this.userData.userId = data.id;
      this.userData.userStatus = data.status;
      console.log(this.userData.userStatus);
    }
  }

load(refresher) {
    if(this.userData.userStatus == "2"){
      let postData = new FormData();
      postData.append('user_id', this.userData.userId);

      this.authService.postData(postData, "is_verified_or_not.php").then((result) => {
        this.responseData = result;

        this.success = this.responseData.success;
        if (this.success == 1) {
          refresher.target.complete();
          // refresher.complete();
          let userDeatil = this.responseData.users_details;
          localStorage.setItem('userData', JSON.stringify(userDeatil));
          for (let data1 of userDeatil) {
            let userStatus = data1.status;
            localStorage.setItem('userStatus', JSON.stringify(userStatus));
            console.log("userStatus" + userStatus);
          }
        } else {
          this.message = this.responseData.message;  
          refresher.target.complete();
          this.showToast(this.message);
        }
      }, (err) => {
        refresher.target.complete();
        console.log("Error", err);
      });
    } else{
      refresher.target.complete();
      console.log("User is already approved: " + this.userData.userStatus);
    }
  }
...