Предыдущие данные отображаются при нажатии нового представления - PullRequest
0 голосов
/ 25 октября 2018

У меня странная проблема с навигацией, возникающая в моем приложении Ionic 3 / Angular 2.Я пытаюсь установить связь между двумя компонентами (страницами), и родительский элемент выталкивает дочерний компонент в верхнюю часть стека:

goToCheckIn(client, i) {
    let that = this;

    this.callback = function(params) {
      return new Promise((res, rej) => {
        that.handleApproval(params['index'], params['approval'], true)
        res()
      })
    }

    console.log(client)

    this.navCtrl.push(CheckInApprovalPage, {
      client: client,
      index: i,
      callback: this.callback
    })
  }

Я реализовал обратный вызов, чтобы позволить nav.pop() в дочернем элементе передавать параметрык родителю , как видно из этого поста .После выполнения своей работы дочерний компонент выскакивает, передавая данные родителю:

rateCheckIn(approval) {
    let updated = Object.assign({}, this.client.check_in)

    this.checkInService.update(updated).subscribe(
      success => {
        this.clientService.hideLoader()
        this.callback({index: this.index, approval: approval}).then(() => this.navCtrl.pop({animate: false}))

      }
    )
  }

Наконец, обратный вызов заставляет родителя выдвинуть тот же дочерний вид только с новым client объектом.

handleApproval(index, approval, from_callback = false) {

    let clients = _.slice(this.clients, index)
    let unsolved = _.filter(clients, [ "check_in['approved']", null ])
    let i = index + 1

    if ( unsolved ) {
      i = _.findIndex(this.clients, {id: unsolved[0]['id']})
    }

    if ( this.clients[ i ] ) {
      this.navCtrl.push(CheckInApprovalPage, {
        client: this.clients[ i ],
        index: i,
        callback: this.callback
      })
    }
  }

На этом этапе дочернее представление появляется с правильными данными client в течение примерно 0,5 с, а затем возвращается к предыдущим данным client.Когда я регистрирую this.client в дочернем элементе (даже после нескольких секунд ожидания), он отображает NEW client, но в представлении все еще отображаются предыдущие данные client.Есть идеи, почему это может произойти?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...