Использование перехватчика в ngOnInit в сборке ssr - Angular 8 - PullRequest
0 голосов
/ 14 октября 2019

Я использую перехватчики для добавления заголовков API. и я вызываю некоторые API в функции ngOnInit. Для нормальной работы он работает отлично. но в сборке и обслуживании ssr API не вызывается, и страница не отображается, но показывает загрузку. Если я прокомментировал вызов API в ngOnInit, это работает. Как я могу решить эту проблему?? Пожалуйста, помогите.

Моя функция component.ts

ngOnInit() {
    this.authController.fetchUser
      .subscribe(
        (params) => {
          this.id = +params['id'];
          this.user = this.authController.getUser(this.id)
        }
      );
  }

fetchUser () - это функция вызова API, использующая перехватчик. эта функция не работает в сборке ssr.

1 Ответ

1 голос
/ 14 октября 2019

В соответствии со сценарием кажется, что вы используете что-то, связанное со стороной клиента, в коде SSR, поэтому ваш API не вызывается и продолжает загружаться.

При использовании SSR это всегда хороший подходчтобы сохранить платформу в проверке кода, просто измените код, как показано ниже -

 constructor(private router: Router) { }

 ngOnInit() {
    if (isPlatformBrowser(this.platformId)) {
      this.fetchData();
    }
  }

  fetchData() {
    this.authController.fetchUser
      .subscribe((params) => {
        this.id = +params['id'];
        this.user = this.authController.getUser(this.id)
      });
  }
...