我使用角度材质(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
中非常感谢您!
答案 0 :(得分:1)
Paginator标有@ViewChild,因此只有在调用ngAfterViewInit()之前才会加载。但是,您将在ngOnInit中调用的loadData()中放置了一个构造新ExampleDataSource的实例。 但是根据Angular生活方式钩子方法的顺序,ngOnInit()将在ngAfterViewInit()之前调用。您已经在ngAfterViewInit()之前调用了至少两次!因此,将this.loadData()放入ngAfterViewInit,然后您应该具有
dataSource: ExampleDataSource;
删除所有依赖this.paginator的内容,而将其放在ngAfterViewInit中。