0
我知道有很多关于角度2变化检测的信息,我一直在尽我所能把头围绕在它周围。我认为我的问题可能与Array的可变性有关,但我不确定。所以我们从Firebase进入这些“桶”,并将它们推送到一个数组中,然后传递给子组件。这一切都可以正常工作,并且数组的填充速度相当快,但它需要几秒钟的时间才能在页面上呈现。 (但是,当我尝试添加一些setIntervals和setTimeouts时,它的运行速度要快得多,但我宁可不要这样做,除非有这样一个干净的解决方案。)有谁明白幕后发生的事情足够好向我简单解释并帮助我?谢谢!角度2变化检测延迟几秒钟,阵列和@输入
import { Component } from '@angular/core';
import { BucketService } from '../../services';
@Component({
selector: 'home-page',
template: `
<header [title]="'Buckets'"></header>
<bucketlist [buckets]="buckets"></bucketlist>
`,
styleUrls: ['./home.page.scss']
})
export class HomePage {
buckets: Array<any> = [];
constructor(public bks: BucketService) {
bks.subscribe(bucket => {
console.log('bucket pushed: ', bucket);
this.buckets.push(bucket);
});
}
}
可能尝试使用concat而不是push来触发更改检测。或者就在你的推动下方添加this.bucket = this.bucket.concat([]) –
试过this.buckets = this.buckets.concat([bucket]);另一种方式。它可以正确安装,但在渲染前仍会延迟数秒。 : -/ – jaruesink
所以我想这不是可变性问题 – jaruesink