Events
dan @ionic/angular
paket Ionic 5. kaldırılır var Sen Ionic5 içinde kırma değişiklikleri görebilirsiniz burada .
Kırılma değişikliklerinde belirtildiği gibi kullanmalısınız Observables
.
Örneğin, aşağıdaki hizmeti oluşturabilirsiniz:
import {Injectable} from '@angular/core';
import {Subject} from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class GlobalFooService {
private fooSubject = new Subject<any>();
publishSomeData(data: any) {
this.fooSubject.next(data);
}
getObservable(): Subject<any> {
return this.fooSubject;
}
}
Artık aşağıdaki gibi herhangi bir bileşene abone olabilirsiniz app.component.ts
:
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.scss']
})
export class AppComponent {
constructor(private globalFooService: GlobalFooService) {
this.initializeApp();
}
initializeApp() {
// other code
this.globalFooService.getObservable().subscribe((data) => {
console.log('Data received', data);
});
}
}
Şimdi, etkinliği başka bir bileşenden yayınlamanız yeterlidir:
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss']
})
export class HomePage {
constructor(private globalFooService: GlobalFooService) {
}
onSomeButtonClick() {
this.globalFooService.publishSomeData({
foo: 'bar'
});
}
}
Bu çok basit bir çözüm / örnek veya alternatifidir, Events
ancak bir konuyla ad alanı olan bir etkinlik yapmak için kodunuzu daha da değiştirebilirsiniz.
Bu konuda size tam özellikli bir çözüm sunabilecek bir blog yazdım, böylece çok daha az kod değişikliği ile uygulamanızı yükseltebilirsiniz.
https://medium.com/wizpanda/dealing-with-breaking-change-in-ionic-5-db3ba711dfcd