There are two main ways to share a state between two components that have no parent / child relationship. The first would be with behavior subject with a service injected into the two components otherwise it would be by a state manager like ngrx that follows the default redux.
Example with behavior subject:
data.service.ts
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Data } from '../entities/data';
@Injectable()
export class DataService {
private dataSource = new BehaviorSubject<SnapshotSelection>(new Data());
data = this.dataSource.asObservable();
constructor() { }
updatedDataSelection(data: Data){
this.dataSource.next(data);
}
}
Your Component
constructor(private dataService: DataService) { }
dataService.data.subscribe(data => {
// use os dados aqui
})
dataService.updateData(newData);// para atualizar os dados
Source: link