Angular Material Paginator 未定义
Angular Material Paginator is undefined
我使用 Angular 材质(MatTable、MatPaginator)。
当我登录我的应用程序并加载我的组件视图时,我在浏览器调试器中收到以下错误:
ERROR TypeError: "_this._paginator is undefined; can't access its "pageIndex" property"
ExampleDataSource http://localhost:4200/main.js:1446
__tryOrUnsub http://localhost:4200/vendor.js:160732
next http://localhost:4200/vendor.js:160670
_next http://localhost:4200/vendor.js:160603
next http://localhost:4200/vendor.js:160578
_subscribe http://localhost:4200/vendor.js:159751
_trySubscribe http://localhost:4200/vendor.js:159963
_trySubscribe http://localhost:4200/vendor.js:160384
我的目标是摆脱这个错误。
由于可能导致此错误的代码太多,请在我的 Github 查看我的组件:https://github.com/chrs-k/Behaeltermanagement/tree/master/Behaeltermanagement/client/src/app/table
问题一定在table.component.ts
非常感谢您!
分页器标有@ViewChild,因此在调用ngAfterViewInit() 之前不会加载。但是,你在 loadData() 里面放了一个构造新的 ExampleDataSource 的实例,在 ngOnInit 中调用。 但是根据Angular lifestyle hook 方法的顺序,ngOnInit() 将在ngAfterViewInit() 之前被调用。 您在ngAfterViewInit() 之前至少已经调用了两次!所以将 this.loadData() 放入 ngAfterViewInit 中,在顶部你应该有
dataSource: ExampleDataSource;
删除依赖于 this.paginator 的所有内容,改为在 ngAfterViewInit 中。
我使用 Angular 材质(MatTable、MatPaginator)。 当我登录我的应用程序并加载我的组件视图时,我在浏览器调试器中收到以下错误:
ERROR TypeError: "_this._paginator is undefined; can't access its "pageIndex" property"
ExampleDataSource http://localhost:4200/main.js:1446
__tryOrUnsub http://localhost:4200/vendor.js:160732
next http://localhost:4200/vendor.js:160670
_next http://localhost:4200/vendor.js:160603
next http://localhost:4200/vendor.js:160578
_subscribe http://localhost:4200/vendor.js:159751
_trySubscribe http://localhost:4200/vendor.js:159963
_trySubscribe http://localhost:4200/vendor.js:160384
我的目标是摆脱这个错误。
由于可能导致此错误的代码太多,请在我的 Github 查看我的组件:https://github.com/chrs-k/Behaeltermanagement/tree/master/Behaeltermanagement/client/src/app/table
问题一定在table.component.ts
非常感谢您!
分页器标有@ViewChild,因此在调用ngAfterViewInit() 之前不会加载。但是,你在 loadData() 里面放了一个构造新的 ExampleDataSource 的实例,在 ngOnInit 中调用。 但是根据Angular lifestyle hook 方法的顺序,ngOnInit() 将在ngAfterViewInit() 之前被调用。 您在ngAfterViewInit() 之前至少已经调用了两次!所以将 this.loadData() 放入 ngAfterViewInit 中,在顶部你应该有
dataSource: ExampleDataSource;
删除依赖于 this.paginator 的所有内容,改为在 ngAfterViewInit 中。