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 发生了变化,此时抛出错误。
解决方案:
- 把对Expression的操作放在settimeout,promise等异步方法里面,则可以避免ngAfterViewChecked()的检测。
- 调换HTML中该Expression出现的先后顺序。
暂时这样。。。研究不深,欢迎指正,共同学习。