В настоящее время я пытаюсь перенести старое приложение Ionic на Ionic 4.
до миграции у них вообще не было проблем
Я работаю надфайл провайдера helper.ts , и я застрял с проблемой миграции.
здесь выводится ионная информация
Ionic:
ionic (Ionic CLI) : 4.12.0 (/usr/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.3.1
@angular-devkit/build-angular : 0.13.8
@angular-devkit/schematics : 7.3.8
@angular/cli : 7.3.8
@ionic/angular-toolkit : 1.5.1
System:
NodeJS : v10.12.0 (/usr/bin/node)
npm : 6.9.0
OS : Linux 4.13
Inстарое приложение, которое мне пришлось импортировать
import { App, MenuController } from 'ionic-angular';
В ионном 4 ионно-угловое заменено на @ ионное / угловое , но приложение больше не существует.
import { App, MenuController } from '@ionic/angular';
приведет к ошибке:
ERROR in src/services/helper.ts(2,10): error TS2305: Module 'URLmodule' has no exported member 'App'.
Итак, я попытался импортировать другой класс, IonApp, но этот класс, похоже, не имеетте же функции
import { IonApp, MenuController } from '@ionic/angular';
приведут к ошибке:
ERROR in src/services/helper.ts(18,18): error TS2339: Property 'getRootNav' does not exist on type 'IonApp'.
Мне было интересно, является ли IonApp правильным элементом, и мне пришлось перезаписать его, илиесли элемент App исчезнет в Ionic 4?
Вот новый helper.ts .
import { Injectable } from '@angular/core';
import { IonApp, MenuController } from '@ionic/angular';
import { Storage } from '@ionic/storage';
import { HomePage } from '../app/home/home.page';
@Injectable({
providedIn: 'root',
})
export class Helper {
constructor(private app: IonApp, private menuCtrl: MenuController, private storage: Storage) { }
/**
* go to HomePage, no matter where u are
*/
previousPage() {
this.app.getRootNav().setRoot(HomePage, {}, {animate: true, direction: 'forward'});
}
// menu handler, because we have two
openMenu(menu) {
this.menuCtrl.enable(true, 'menu-map');
this.menuCtrl.open('menu-map');
}
closeMenu(menu) {
this.menuCtrl.close('menu-map');
this.menuCtrl.enable(false, 'menu-map');
}
storeStats(article) {
this.storage.get('processStats').then((val) => {
let find = false;
for(let i=0; i < val.length; i++) {
if(article.code === val[i].code) {
let array = val;
array[i].view = val[i].view + 1;
this.storage.set('processStats', array);
find = true;
break;
}
}
if(find === false) {
let array = val;
array.push({code: article.code, title: article.title, view: 1, notFound: 0})
this.storage.set('processStats', array)
}
})
}
notFoundStats(article) {
this.storage.get('processStats').then((val) => {
for(let i=0; i < val.length; i++) {
if(article.code === val[i].code) {
let array = val;
array[i].notFound = val[i].notFound + 1;
this.storage.set('processStats', array);
break;
}
}
});
}
initialiseStats() {
this.storage.set('processStats', [{code: "", title: "", view: 0, notFound: 0}])
}
}