Angular变更检测策略报错

报错信息: ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'null: 8'. Current value: 'null: 4'.

报错触发: 在渲染时,连续多次修改Expression ,出现该问题

报错原因:Angualr中的change detection strategy,大概意思是在变更检测之后时,即在ngAfterViewChecked()生命周期钩子里面又检测到该Expression 发生了变化,此时抛出错误。

解决方案

  1. 把对Expression的操作放在settimeout,promise等异步方法里面,则可以避免ngAfterViewChecked()的检测。
  2. 调换HTML中该Expression出现的先后顺序。

 

暂时这样。。。研究不深,欢迎指正,共同学习。

posted @ 2020-05-18 17:52  萤火虫不玩儿火  阅读(249)  评论(0编辑  收藏  举报