Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 4 cdk table trackby不工作。整张桌子都重新招标了_Angular_Angular Cdk - Fatal编程技术网

Angular 4 cdk table trackby不工作。整张桌子都重新招标了

Angular 4 cdk table trackby不工作。整张桌子都重新招标了,angular,angular-cdk,Angular,Angular Cdk,已解决: 问题出在rxJS线程中。一个线程过于频繁地传递空数组,因此它重置了表 表格每4秒更新一次。为了停止闪烁,我应用了trackBy函数。我看到函数被触发了,但是整个表被重新加载。我想我做错了什么。 我所做的。。。 设置跟踪功能 实现跟踪功能 trackById(索引,项){ 控制台日志(项目id); 返回项目。\u id; } 表由表的数据源更新更新 updateOperations(){ this.dataSource=新源(this.forexService); } 整个组件都

已解决: 问题出在rxJS线程中。一个线程过于频繁地传递空数组,因此它重置了表

表格每4秒更新一次。为了停止闪烁,我应用了trackBy函数。我看到函数被触发了,但是整个表被重新加载。我想我做错了什么。 我所做的。。。 设置跟踪功能


实现跟踪功能

trackById(索引,项){
控制台日志(项目id);
返回项目。\u id;
}
表由表的数据源更新更新

updateOperations(){
this.dataSource=新源(this.forexService);
}
整个组件都在这里

此组件显示操作列表。它从两个观测值中检索数据。表的数据源创建一次。数据更改由行为主体数据启动。数据检索过程位于函数
update
中。mat table组件使用trackBy指令来优化输出。但它仍在闪烁

有两个带trackId和不带trackId的Plunk: 与- 没有—

根本没有这种影响。在我的应用程序中,它正在闪烁


我希望,任何人都能帮助我。问候。

这是一个逻辑问题。数据源由几个流组合而成。因此,其中一个流重置了数据。

这是一个逻辑问题。数据源由几个流组合而成。因此其中一个流重置了数据。

只需返回item//or index和*ngFor“…;trackBy:trackById”。如果您没有使用ngFor,那么发布更多代码,整个组件都在这里。此组件显示操作列表。它从两个观测值中检索数据。表的数据源创建一次。数据更改由行为主体数据启动。数据检索过程位于函数
update
中。mat table组件使用trackBy指令来优化输出。但它仍然闪烁。Mat-table没有trackby属性,据我所知(至少我可以找到任何相关的),另外,如果在示例中(使用),如果您在trackById方法中设置console.log,它就不会被触发,这使我更加相信它不是attributeExists,而是cdk表,而不是Mat表,对吗?只需返回“…;trackBy:trackById”的条目//或索引和*ngo。如果您没有使用ngFor,那么发布更多代码,整个组件都在这里。此组件显示操作列表。它从两个观测值中检索数据。表的数据源创建一次。数据更改由行为主体数据启动。数据检索过程位于函数
update
中。mat table组件使用trackBy指令来优化输出。但它仍然闪烁。Mat-table没有trackby属性,据我所知(至少我可以找到任何相关的),另外,如果在示例中(使用),如果您在trackById方法中设置console.log,它就永远不会被触发,这强化了我的想法,即它不是attributeExists,而是cdk表,而不是Mat表,对吗?您好,viktor,我的垫子树也有同样的问题。你能详细说明一下这个问题吗?我目前正在使用异步httpclient get请求更新数据源。我需要查看代码。在我的例子中,它不起作用,因为在数据数组之后,空数组通过,这重置了跟踪功能。所以trackId在那里是无用的,但它起了作用。我做了一些测试,似乎我必须不断修改原始列表值,而不是覆盖旧的列表值。例如:
myBehaviorSubject.next(返回时进行修改(myBehaviorSubject.getValue())
而不是
myBehaviorSubject.next(httpRequestWithNewValuesAndOldValues())
,如果我理解正确的话。这只有在我编辑可观察的现有值时才有效?你好,维克多,我的mat树也有同样的问题。你能详细说明一下这个问题吗?我目前正在使用异步httpclient get请求更新数据源。我需要查看代码。在我的例子中,它不起作用,因为在数据数组之后,空数组通过,这重置了跟踪功能。所以trackId在那里是无用的,但它起了作用。我做了一些测试,似乎我必须不断修改原始列表值,而不是覆盖旧的列表值。例如:
myBehaviorSubject.next(返回时进行修改(myBehaviorSubject.getValue())
而不是
myBehaviorSubject.next(httpRequestWithNewValuesAndOldValues())
,如果我理解正确的话。这只有在我编辑observable中的现有值时才有效?