1

У меня есть два компонента component A и component B,Angular2, Как перезагрузить компонент только один раз?

В компоненте А, я отправляю запрос HTTP на сервер и получить ответ состояние = «успех». На success я перейти с queryParams статуса = «успех» к компоненту В.

В компоненте В, я проверю в конструкторе(), если я получил queryParam's значение, как «успех», то я хочу, чтобы загрузить его только один раз и перенаправлять к следующему компоненту C.

Я использовал location.reload(), но в итоге я снова и снова перезаряжаю компонент B.

Есть ли решение для этого?

Component A 
.subscribe(result => { 
    if(result.status == 'success'){ 
     this.router.navigate(['/componentB'],{queryParams:{response: result.status}}); 
             } 

component B constructor(){ 
    this._activatedRoute.queryParams.subscribe(
     (queryParam: any) => this.response = queryParam['response']); 
    if(this.response == 'success'){ 
      this.route.navigate(['/componentC']); 
      window.location.reload(); 
    } 

}

+0

Что такое функция компонента B? У вас есть код, на который мы можем смотреть? –

+0

Это все, что компонент B делает? Если вы не можете просто перейти прямо к C, если «успех», из того, что я вижу, B является ненужным шагом. –

+0

, но по какой-то причине я использовал для перезагрузки компонент B и получить параметры form.status. – RohanArihant

ответ

0

Перейдите к компоненту C, а затем перейти к компоненту, который вы хотите, чтобы перезагрузить. // второй параметр _skipLocationChange=true, чтобы избежать этого указателя в обратной кнопке

this.route.navigateByUrl('/componentC', true);