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