gpt4 book ai didi

angular - Subject.next 不在 ngOnInit 中触发

转载 作者:太空狗 更新时间:2023-10-29 17:25:13 25 4
gpt4 key购买 nike

有谁知道为什么这段代码(从 Subject 初始化一个值)不起作用?有错误还是设计使然?我做错了什么?

ts

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

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.styl']
})
export class AppComponent implements OnInit {
itemSupplier$: Subject<any[]> = new Subject<any[]>();

items: any[] = [
{name: 'Item 1', value: 'item1'},
{name: 'Item 2', value: 'item2'},
];

ngOnInit(){
this.itemSupplier$.next(this.items);
}
}

html

<ul>
<li *ngFor="let item of itemSupplier$ | async">{{item.name}}</li>
</ul>

最佳答案

这似乎是一个时间问题,如果你把它放在一个 setTimeout 中它会起作用。

setTimeout(() => this.itemSupplier$.next(this.items), 0)

编辑

实际上使用 BehaviorSubject 是一个更好的主意。这将在订阅时提供最后一个值。

关于angular - Subject.next 不在 ngOnInit 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41667580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com