Angular应用程序使用未定义的observable不会导致ExpressionChangedAfterItHasBeenCheckedError错误,但它看起来应该会?
创始人
2024-10-30 14:00:24
0

在Angular中,当某个observable的值发生更改时,Angular会运行变更检测器以更新视图。这时可能会遇到ExpressionChangedAfterItHasBeenCheckedError错误,因为更改还没有完全渲染到视图上。

然而,当使用undefinedobservable时,Angular不会运行变更检测器,因为未定义的observable并没有发出任何值。因此,即使值发生更改,Angular也不会更新视图,也不会出现ExpressionChangedAfterItHasBeenCheckedError错误。

以下是示例代码如何创建undefinedobservable和如何订阅它:

import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs';

@Component({
  selector: 'app-my-component',
  template: `
    
{{ value$ | async }}
`, }) export class MyComponent implements OnInit { value$: Observable; ngOnInit() { // Create an undefined observable this.value$ = undefined; // Subscribe to the undefined observable this.value$.subscribe(console.log); // This will not cause ExpressionChangedAfterItHasBeenCheckedError } }

要避免这种情况,可以在创建observable时使用of方法来发出默认值。例如:

import { Component, OnInit } from '@angular/core';
import { Observable, of } from 'rxjs';

@Component({
  selector: 'app-my-component',
  template: `
    
{{ value$ | async }}
`, }) export class MyComponent implements OnInit { value$: Observable; ngOnInit() { // Create an observable with a default value this.value$ = of(''); // Subscribe to the observable this.value$.subscribe(console.log); // This will not cause ExpressionChangedAfterItHasBeenCheckedError } }

相关内容

热门资讯

一分钟揭秘!wepoker线上... 一分钟揭秘!wepoker线上大神(辅助挂)竟然存在有挂(有挂规律辅助方法)1、每一步都需要思考,不...
实测交流!wepoker有没有... 实测交流!wepoker有没有辅助(辅助挂)果然存在有挂(证实有挂辅助插件)1、脚本辅助下载、免费透...
玩家必备教程!aa poker... 玩家必备教程!aa poker透视软件(辅助挂)真是存在有挂(真的有挂辅助插件)所有人都在同一条线上...
实测必看!竞技联盟透视(辅助挂... 实测必看!竞技联盟透视(辅助挂)切实真的是有挂(真实有挂辅助器)1、进入游戏-大厅左侧-新手福利-激...
新手必备!德州透视插件(辅助挂... 新手必备!德州透视插件(辅助挂)果然存在有挂(竟然有挂辅助技巧)1、游戏颠覆性的策略玩法,独创攻略技...
分辨真假!wejoker透视方... 分辨真假!wejoker透视方法(辅助挂)确实是真的有挂(有挂神器辅助器)1、实时透视辅助更新:用户...
一起来讨论!poker wor... 一起来讨论!poker world辅助(辅助挂)果然有挂(有挂总结辅助脚本)1、透视辅助软件激活码多...
玩家爆料!hhpoker辅助软... 玩家爆料!hhpoker辅助软件(辅助挂)其实有挂(了解有挂辅助方法)1. 选牌创建新账号,点击进入...
玩家必看科普!约局吧如何查看是... 玩家必看科普!约局吧如何查看是否有挂(辅助挂)其实有挂(有人有挂辅助脚本)1、免费脚本咨询教程、免费...
实测必看!德扑圈有透视吗(辅助... 实测必看!德扑圈有透视吗(辅助挂)切实真的是有挂(有挂辅助辅助工具)1、进入到是否有挂之后,能看到左...