Таким образом, вы вводите компонент в другой компонент. Я сомневаюсь, что это один и тот же экземпляр. Вы бы поместили console.log в AppHeaderComponent и увидели, сколько раз он вызывается. Из родительского контейнера вы можете получить ссылку на ваш компонент заголовка приложения, используя @ViewChild (AppHeaderComponent). Я бы по-прежнему предлагал использовать сервис, который является одноэлементным, и все компоненты получали бы один и тот же экземпляр сервиса.

я изменяю некоторые данные в одном компоненте, например: меняйте изображение профиля пользователя одного модуля, и такое же изображение профиля должно отражаться в другом компоненте какого-то другого модуля. Это не родительские / дочерние компоненты. Поэтому я импортирую модуль и конкретный компонент. Вызов функции компонента, который назначает значение области изображения профиля. Эта функция срабатывает, и измененный URL-адрес появляется в консоли, если я распечатаю это в консоли. Но не отражая в представлении. Я пробовал сChangeDetectorRef а такжеthis.ref.detectChanges(); Но это дает ошибку как

core.es5.js:1020 ERROR Error: Uncaught (in promise): Error: No provider for ChangeDetectorRef!
Error: No provider for ChangeDetectorRef!

а также попробовал с Zone.run ().
Но это не сработало для меня. Может ли кто-нибудь, пожалуйста, помогите.

 constructor(private appHeaderComponent: AppHeaderComponent) { }


//component 1 sending data
uploadProfilePicture = (event) => {
 if (this.profileFormData) {
     this.headerService.savePhoto(this.profileFormData, 'profile-pictures').then((saveProfilePhotoData) => {
         if (saveProfilePhotoData['status_code'] === 200) {
             this.appHeaderComponent.getUserImage(saveProfilePhotoData['result']['pictures'][0]['imageUrl']);
         }
     });
  }
 }


//component 2 Receiving data
getUserImage = (image) => {
 if (image) {
     this.userImage = image;
 } else {
     this.userImage = sessionStorage.profilePicture;
 }
}

Ответы на вопрос(1)

Ваш ответ на вопрос