Я пытаюсь включить WheelSelector (плагин Wheel-selector для Ionic Native) в свое приложение ionic3, однако, когда я пытаюсь импортировать и добавить WheelSelector в свой список поставщиков в моем app.module.ts @NgModule, я получаю сообщение об ошибке : «Тип «WheelSelectorOriginal» не может быть назначен типу «Поставщик».»
Я пытаюсь следовать этому простому руководству: https://ionicacademy.com/wheel-picker-ionic/
Я установил плагин, выполнив следующие действия в папке проекта:
ionic cordova plugin add cordova-wheel-selector-plugin
npm install --save @ionic-native/wheel-selector
В конце концов, я не могу заставить плагин работать вообще.
Я попытался импортировать WheelSelector из обоих:
'@ionic-native/wheel-selector'
'@ionic-native/wheel-selector/ngx'
Если я использую версию ngx, я больше не получаю указанную выше ошибку назначения, однако я получаю новую ошибку времени выполнения, указывающую, что Object(...) не является функцией.
app.module.ts:
import { WheelSelector } from '@ionic-native/wheel-selector';
...
@NgModule({
...
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler},
WheelSelector
]
дом.тс:
import { Component } from '@angular/core';
import { NavController, ToastController } from 'ionic-angular';
import { WheelSelector } from '@ionic-native/wheel-selector';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
dummyJson = {
days: [
{description: 'Mon'},
{description: 'Tue'},
{description: 'Wed'},
{description: 'Thu'},
{description: 'Fri'},
{description: 'Sat'},
{description: 'Sun'}
],
people: [
{description: 'Joe'},
{description: 'John'},
{description: 'Max'}
]
};
constructor(public navCtrl: NavController,
private toastCtrl: ToastController, private selector: WheelSelector) {}
openPicker(){
this.selector.show({
title: 'select your contact',
positiveButtonText: 'yes',
negativeButtonText: 'no',
items:[
this.dummyJson.days,
this.dummyJson.people
],
defaultItems: [
{index:0, value: this.dummyJson.days[4].description},
{index:1, value: this.dummyJson.people[1].description},
]
}).then(result=>{
let msg = 'woo';
let toast = this.toastCtrl.create({
message: msg,
duration: 4000
});
toast.present();
});
}
}
Любая помощь, где я ошибаюсь, будет оценена по достоинству! Спасибо!
🤔 А знаете ли вы, что...
Angular - это открытый исходный код фреймворк для разработки веб-приложений, написанный на языке TypeScript.
Решено:
Было пару проблем:
Я считаю, что в прошлом Ionic 2 теперь импорт для ionic-native плагинов должен происходить из папки ngx. Это изменилось как в файле app.module.ts, так и в файле home.ts. Это решает проблему назначения провайдера.
import { WheelSelector } from '@ionic-native/wheel-selector'/ngx;
Затем в моем файле package.json я обновил ВСЕ зависимости @ionic-native до: «5.0.0-beta.15». Так:
"@ionic-native/core": "5.0.0-beta.15",
"@ionic-native/splash-screen": "5.0.0-beta.15",
"@ionic-native/status-bar": "5.0.0-beta.15",
"@ionic-native/wheel-selector": "5.0.0-beta.15",
Потом:
npm install
Теперь приложение работает нормально, без ошибок - по-прежнему не удается отобразить селектор колес, но я думаю, что это, возможно, потому, что я тестирую в браузере, а не на устройстве...