Angular v8 - @ViewChild статический true или false - PullRequest
1 голос
/ 09 июля 2019

Angular v8 только что был выпущен.Хотя это в основном обратно совместимо, есть некоторые критические изменения.

Согласно Журналу изменений Angular одно изменение ядра (я цитирую):

"В Angular версии 8 требуется, чтобы все @ViewChildи запросы @ContentChild имеют флаг «static», указывающий, является ли запрос «статическим» или «динамическим». "

Также указывается, что в большинстве случаев достаточно просто установить { static: false }.

@ViewChild('selectorName', { static: false }) varName: any;

У меня вопрос, когда я должен установить этот атрибут (статический) равным true?и как это повлияет на мое приложение ???

1 Ответ

2 голосов
/ 09 июля 2019

Из документации:

Как выбрать статическое значение флага для использования: true или false?

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

Большинство приложений захотят использовать {static: false}по той же причине.Этот параметр гарантирует, что совпадения запросов, которые зависят от разрешения привязки (например, результаты внутри * ngIfs или * ngFors) будут найдены запросом.

В более редких случаях может потребоваться флаг {static: true} (см. ответ здесь).

https://angular.io/guide/static-query-migration

...