服务中 BehaviorSubject 的值(在组件之间共享数据)未更新

问题描述 投票:0回答:0

我尝试使用带有 BehaviorSubject 的服务在我的根组件和组件之间共享数据。

这里是服务:

@Injectable({
  providedIn: 'root'
})
export class UserService {  

public loggedUser = new BehaviorSubject<string>("INITIAL");


  castUser = this.loggedUser.asObservable();
   
  editUser(newLoggedUser : string){
    this.loggedUser.next(newLoggedUser);
  }}

在我的 RootComponent 上我有:

this.userService.editUser("HELLO");

在我的其他组件上(我将此代码放在 ngOnInit 函数或 ngAfterViewInit 中,但它是相同的):

constructor(private userService : UserService) 
  {

    this.userService.castUser.subscribe(userFirstname => {
      console.log("UserProfileComponent constructor userFirstname = " + userFirstname); // always display "INITIAL"
    });

  }

问题是当调用订阅函数时,它应该显示 HELLO,而不是 INITIAL。它不显示新值。

一个想法?

谢谢

angular rxjs angular-services
© www.soinside.com 2019 - 2024. All rights reserved.