我正在尝试使用主题行为 "Property 'subscribe' does not exist on type '(data: any) =>void'" 将字符串消息从一个组件发送到另一个组件

Im trying to send str message from a componant to an other using Subject behavior "Property 'subscribe' does not exist on type '(data: any) =>void'"

我创建了一个服务来将字符串从组件 A 发送到组件 B :

this is the service (FactureService) :


  public notificationSubject= new Subject<string>()


  constructor() {}

envoyerIdPartnerdeDialogauForm(data){
   this.notificationSubject.next(data);
  }

这是组件 A :

constructor(  private factureservice : FactureService) { }

 ngOnInit(): void {}
 
sendidPartenaire(data){
  this.factureservice.envoyerIdPartnerdeDialogauForm(data.value)
  Entre id: <input type ='text' #message />
<button   (click)="sendidPartenaire(message)">Send message</button>

这是组件 B :

  idpartnerstring : string ;
constructor(){   private factureservice: FactureService}



//the problem is here in the subscribe :
//Property 'subscribe' does not exist on type '(data: any) => void'
  ngOnInit(): void {
this.factureservice.envoyerIdPartnerdeDialogauForm.subscribe(d => {

  this.idpartnerstring=d;
});

}

#我尝试在服务中添加 return 但仍然遇到同样的问题

envoyerIdPartnerdeDialogauForm 是您服务中的一种方法,请订阅 notificationSubject 而不是

  ngOnInit(): void {
    this.factureservice.notificationSubject.subscribe(d => {

      this.idpartnerstring=d;
    });
  }

在您的组件 B 中,您正在尝试订阅一个名为 envoyerIdPartnerdeDialogauForm 的方法,这当然不会起作用,因为它不应该被订阅。

我建议如下:

在您的服务中,添加以下方法,returns 您可以从您创建的主题中观察到该方法:

notificationSubject$(): Observable<string> {
   return this.notificationSubject.asObservable();
}

那么你可以在你的组件B中订阅这个方法:

ngOnInit(): void {
   this.factureservice.notificationSubject$().subscribe(value => {
      this.idpartnerstring = value;
   });
}