【问题标题】:Angular change false to true on ngOnInitngOnInit 上的 Angular 将 false 更改为 true
【发布时间】:2023-03-08 04:40:01
【问题描述】:

我有一个服务,其中包含一组选定的 ID。当我初始化一个组件时,我会检查该组件的 ID 在数组中是否存在。但是,Angular 会抛出一个异常,即视图检查后值已更改。

我尝试在this._checked = true 之后添加detectChanges(),尝试了markForCheck()。此外,我尝试将这两种情况转移到不同的生命周期挂钩,但没有成功,只是它开始工作,尽管抛出了错误。

【问题讨论】:

  • detectChanges() 仅适用于被调用组件及其子组件,请出示您的完整代码。试试setTimeout(() => {this._checked = true})。这可能会起作用..
  • 尝试将其更改为 afterViewInit 挂钩?
  • 在更改值之前调用ChangeDetectorRef.detectChanges
  • @ConnorsFan 不,它会继续。
  • @xyz 忘了提。我和 Promise 都试过了。然后

标签: angular angular-changedetection


【解决方案1】:

角度变化检测就像绞肉机,您正试图在此过程中改变肉。通常,markForCheck() 在这种情况下就足够了。如果您发布完整代码,我们可以尝试找出它在您的情况下不起作用的原因。如果一切都失败了,你总是可以这样做:

setTimeout(() => {
  this.youChanges();
  this.changeDetectorRef.markForCheck();
});

【讨论】:

  • 事实证明,我还有另一个相同文本的错误,所以可以正常工作
猜你喜欢
  • 1970-01-01
  • 2017-11-05
  • 2013-09-09
  • 2011-10-12
  • 2016-09-23
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多