Использование SimpleChanges для доступа к нескольким свойствам - PullRequest
0 голосов
/ 10 июля 2020

Как лучше всего переписать следующий хук жизненного цикла ngOnChanges как производную от SimpleChanges? Я не видел примеров, где все свойства с привязкой к данным зависят друг от друга.

export class BuilderSidebarPhotosComponent implements AfterViewInit {
  @Input() photos: IUnsplashResponse[];
  @Input() photosLoaded = false;
  @Input() photoCategories: IPhotoCategory[];
  @Input() photoCategoriesLoaded = false;
  @Input() activeSetting = null;
  @Input() innerHeight;

  PHOTOS_LISTING_INNER_HEIGHT_OFFSET = 200;

  ngOnChanges(): void {
    this.photosListingInnerHeight = this.innerHeight - this.PHOTOS_LISTING_INNER_HEIGHT_OFFSET;
    if (
      this.photoCategoriesLoaded === true &&
      this.photosLoaded === true &&
      this.activeSetting === ActiveSettings.Photos
    ) {
      this.setInitialLoader();
    }
  }

  ...

}

1 Ответ

1 голос
/ 10 июля 2020

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

...
@Input() set photosLoaded(value) {
   ...
   this.checkIfInitialStateIsReady();
   ...
};
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...