Ionic 5 में @ ईओण / कोणीय त्रुटि से सदस्य घटना को कैसे ठीक करें


11

मैंने Ionic 4 से Ionic 5 में अपग्रेड किया है, अब निम्नलिखित त्रुटि हो रही है:

ERROR इन src / app / app.component.ts (4,10): त्रुटि TS2305: मॉड्यूल '' / node_modules / @ आयनिक / कोणीय / आयनिक-कोणीय "'का कोई निर्यात सदस्य' ईवेंट 'नहीं है।

निम्नलिखित आयात लाइन समस्या का कारण बन रही है:

import { Events, Platform } from '@ionic/angular';

मैं @ionic/angularIonic 5 में त्रुटि से सदस्य घटना को कैसे ठीक कर सकता हूं ?


नमस्ते, मैं एक ही समस्या का सामना कर रहा हूँ। और मेरे लिए, ऐसा लगता है कि आयोनिक 4 ने घटनाओं को हटा दिया। मैंने यह पाया: stackoverflow.com/questions/58265379/… शायद इससे मदद मिलती है
Ipad

1
मेरे पास एक ही त्रुटि है, उसके लिए एक सरल प्रतिस्थापन खोजने में भी खुशी होगी। मत मेरे मामले में redux के लिए जाना चाहता हूँ।
फरघो

मैं भी इसे प्राप्त कर रहा हूं। यह एक बड़े पैमाने पर, परिवर्तन को तोड़ने जैसा लगता है। क्या वह कभी आयनिक टीम द्वारा प्रलेखित किया गया था? यदि हां, तो मुझे वह पढ़ना है!
जॉन

@Ipad कृपया मेरे उत्तर की जाँच करें।
शशांक अग्रवाल

@ जो इसे इओनिक के ब्रेकिंग चेंज प्रलेखन में प्रलेखित है। कृपया मेरा उत्तर जांचें।
शशांक अग्रवाल

जवाबों:


18

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


0

ईवेंट हटा दिए गए हैं। आप अपनी स्वयं की सेवा को अपने स्वयं के अवलोकन के रूप में घटना के रूप में कर सकते हैं, और विषय व्यवहार ताकि आप ओब्जर्वेबल को प्रकाशित कर सकें और मूल्य प्राप्त करने के लिए सदस्यता ले सकें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.