Angular 8: как мы можем обнаружить повторный рендеринг компонента (как событие) - PullRequest
0 голосов
/ 21 апреля 2020

Мне нужно что-то как событие, чтобы перехватить рендеринг компонента в Angular 8

1 Ответ

0 голосов
/ 21 апреля 2020

Я думаю, что если вы что-то меняете в пользовательском интерфейсе / состоянии, то будет вызываться ngOnChanges.

ngOnChanges() (OnChanges) вызывается, когда значение, привязанное к вводу, изменилось, так что вы можете запустить пользовательский код при изменении ввода.

ngDoCheck() (DoCheck) вызывается при запуске обнаружения изменений, чтобы вы могли реализовать свое собственное действие по обнаружению изменений.

 ngOnChanges(changes: SimpleChanges) {
    // changes.prop contains the old and the new value...
     console.log('on change', changes)
  }

Если вы обрабатываете ответ HTTP и вы хотите наблюдать это, затем используйте BehaviorSubject.

Пожалуйста, проверьте следующий пример,

Служба для вызова API - TestService

        private test = new BehaviorSubject<any>(null);

        getTest() {
            // ...
            return this.http.get(_url, options)
                .map(response => {
                    const responseAsObject = response.json();
                    this.test.next(responseAsObject); // change the value!
                });
        }

В вашем компоненте

        export class TestComponent implements OnInit{
            private testObj : any;

            constructor(
              private testService: TestService,
            ) {}

            ngOnInit() {
                this.testService.getTest
                    .subscribe(test => {
                        // here is the test object from the service, you can do whatever you want with it
                        // it fires when you get the updated response
                });  
            }
        }

Надеюсь, это поможет вам.

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