Events
से @ionic/angular
पैकेज आयोनिक 5. से हटा दिया गया है आप Ionic5 में परिवर्तन को तोड़ने के देख सकते हैं यहां ।
जैसा कि ब्रेकिंग परिवर्तनों में इसका उल्लेख है, आपको उपयोग करना चाहिए Observables
।
उदाहरण के लिए, आप निम्नलिखित सेवा बना सकते हैं:
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;
}
}
अब, आप किसी भी घटक की तरह सदस्यता ले सकते हैं 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);
});
}
}
अब, आपको बस किसी अन्य घटक से घटना का उत्सर्जन करना है:
@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'
});
}
}
यह एक बहुत ही सरल समाधान / उदाहरण या विकल्प है, Events
लेकिन आप इसे किसी विषय के साथ एक नामांकित घटना बनाने के लिए अपने कोड को आगे ट्विक कर सकते हैं।
मैंने इस पर एक ब्लॉग लिखा है जो आपको एक पूर्ण-विशेषताओं वाला समाधान दे सकता है ताकि बहुत कम कोड परिवर्तन के साथ, आप अपने ऐप को अपग्रेड कर सकें।
https://medium.com/wizpanda/dealing-with-breaking-change-in-ionic-5-db3ba711dfcd