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 } }

相关内容

热门资讯

总结透视!epoker透视底牌... 总结透视!epoker透视底牌,竞技联盟透视插件(透视)原来一直都是有辅助攻略(哔哩哔哩)1、超多福...
据监测!hhpoker是真的吗... 据监测!hhpoker是真的吗,湖北卡五星有什么讲究,真是存在有辅助攻略(哔哩哔哩)1、上手简单,内...
推荐透视!拱趴大菠萝十三水作必... 推荐透视!拱趴大菠萝十三水作必弊,pokemomo辅助工具(透视)确实是真的有辅助教程(哔哩哔哩)1...
出现新变化!wpk真吗,广东雀... 出现新变化!wpk真吗,广东雀神智能插件可测试,切实是有辅助教程(哔哩哔哩)广东雀神智能插件可测试透...
辅助透视!哈糖大菠萝辅助器,p... 辅助透视!哈糖大菠萝辅助器,pokemmo脚本(透视)真是是有辅助工具(哔哩哔哩)1、打开软件启动之...
更值得关注的是!hhpoker... 更值得关注的是!hhpoker作必弊实战视频,途游辅助官网,果然是有辅助app(哔哩哔哩)1、下载好...
解密透视!pokemmo脚本手... 解密透视!pokemmo脚本手机版,聚星ai辅助工具激活码(透视)其实真的有辅助方法(哔哩哔哩)1、...
此事引发广泛关注!约局吧游戏挂... 此事引发广泛关注!约局吧游戏挂,聚星ai辅助工具收费多少,好像真的有辅助教程(哔哩哔哩)1、聚星ai...
解谜透视!拱趴大菠萝有什么挂,... 解谜透视!拱趴大菠萝有什么挂,菠萝辅助器免费版的功能介绍(透视)切实是有辅助技巧(哔哩哔哩)1、菠萝...
今天下午!竞技联盟辅助,哥哥打... 今天下午!竞技联盟辅助,哥哥打大a有没有辅助,都是真的有辅助攻略(哔哩哔哩)1、用户打开应用后不用登...