TransferState некоторая часть разрешенных данных отсутствует на стороне клиента, хотя присутствует на сервере

App .routing.module:

{
  path: '',
  component: IndexComponent,
  resolve: { videos: GetVideosResolver },
},

GetVideosResolver:

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
const VIDEOS_KEY = makeStateKey('videos');

if (this.transferState.hasKey(VIDEOS_KEY)) {
  const videos = this.transferState.get(VIDEOS_KEY, null);
  this.transferState.remove(VIDEOS_KEY);
  return of(videos);
} else {
  return this.http.get(`${environment.api_url}/video/list`).pipe(
    tap((videos: any) => {
      if (isPlatformServer(this.platformId)) {
        this.transferState.set(VIDEOS_KEY, videos);
      }
    }),
    catchError((err) => of())
  );
}

}

console.log(this.route.shapshot.data.videos) печатает правильные разрешенные данные в моей консоли IDE, хотя в консоли браузера отсутствует какой-то важный объект. Кажется, что angular имеет какое-то ограничение на то, насколько большой объект вы можете разрешить за один раз. Как мне обойти это?

1 ответ

Все заработало.

this.transferState.set(VIDEOS_KEY, { ...videos });
Другие вопросы по тегам