Как инициализировать MatPaginator как переменную-член @ViewChild? - PullRequest
0 голосов
/ 05 февраля 2020

Я кодирую в Visual Studio Code Angular 8 проекте и просто добавил некоторые строгие настройки режима:

"compilerOptions": {
  "strict": true,
  "noImplicitAny": true,
  "noImplicitThis": true,
  "alwaysStrict": true,
  "strictNullChecks": true,
  "strictFunctionTypes": true,
  "strictPropertyInitialization": true,

Теперь мой paginator, который работал нормально, теперь даже не компилируется.

Я могу создать MatSort с помощью:

@ViewChild(MatSort, { static: true }) sort: MatSort = new MatSort();

Но я не могу сделать то же самое для переменной-члена MatPaginator:

@ViewChild(MatPaginator, { static: true }) paginator?: MatPaginator;

Это вынуждает меня добавить некоторые проверки в код:

if (this.paginator) {

Я читаю этот блог статья , но я все еще ищу альтернативное решение.

1 Ответ

0 голосов
/ 05 февраля 2020

В случае MatPaginator вы не были созданы, только объявлены там. Чтобы избежать этой проверки, вы должны создать ее экземпляр, как в MatSort примере, если ваше требование удовлетворяет этому.

@ViewChild(MatPaginator, { static: true }) paginator: MatPaginator = new MatPaginator();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...