我在主要组件的[height]上遇到以下错误并寻找解决方案
错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后发生了变化。先前价值:'753'。当前价值:'731'。
我有三个组件需要在固定大小的面板中呈现。
根据屏幕中呈现的顶部组件和底部组件的数量,应更改主要组件大小(高度)。
我找到的唯一解决方案是使用offsetHeight,但是会在角度上抛出错误。
我知道我可以使用jQuery或Javascript解决这个问题吗?但是寻找纯粹的Angular解决方案。
<div #panelbody>
<div #top>
<top *ngFor="let top of tops; let i = index" [index]="i"></top>
</div>
<main [height]="panelbody.offsetHeight - top.offsetHeight - bottom.offsetHeight - 10"></main>
<div #bottom class="text-center">
<bottom *ngFor="let bottom of bottoms(); let i = index" [index]="i">
</bottom>
</div>
</div>
答案 0 :(得分:0)
似乎此错误仅在开发模式下弹出,而不是在生产模式下弹出。但是错误意味着在更改检测周期之后,绑定[height]属性发生了一些变化,这些变化直到下一个变化检测周期发生时才会反映出来。请参阅此issue on github