Ionic 2,日期选择器(cordova 插件)。类型“typeof DatePicker”上不存在属性“ANDROID_THEMES”

问题描述 投票:0回答:1

我已经在我的项目中安装了插件日期选择器

在顶部有

import { DataPicker } from 'ionic-native'
的组件中,如果我像那样使用它(带有注释的androidTheme参数)它可以工作

  let options = {
      date: new Date(),
      mode: 'date',
      // androidTheme: DatePicker.ANDROID_THEMES.THEME_HOLO_LIGHT
  };

    DatePicker.show(options).then(
      (date) => {
      console.log('date_value:' + date)
  }).catch( (error) => { });

如果我取消注释

androidTheme:DatePicker.ANDROID_THEMES.THEME_HOLO_LIGHT
,它会在构建过程中抛出错误:

类型“typeof DatePicker”上不存在属性“ANDROID_THEMES”

我按照此处的建议

在我的项目文件夹中的 CLI 中执行了 
npm install ionic-native,但它没有解决问题。它给了我以下输出(对我来说似乎没问题):

`--

[电子邮件受保护]

npm WARN 可选跳过失败的可选依赖项 /chokidar/fsevents:

npm WARN notsup 与您的操作系统或架构不兼容:

[电子邮件受保护]

当我查看

[my project]\plugins\cordova-plugin-datepicker\www

时,它包含与3个平台(ios、android、windows)相对应的3个文件夹,每个文件夹都有一个名为“DatePicker.js”的JS文件,在代码中包含的android文件夹下面的一个: 

/** * Android themes */ DatePicker.prototype.ANDROID_THEMES = { THEME_TRADITIONAL : 1, // default THEME_HOLO_DARK : 2, THEME_HOLO_LIGHT : 3, THEME_DEVICE_DEFAULT_DARK : 4, THEME_DEVICE_DEFAULT_LIGHT : 5 };
如果我查看 

[my project]\nodes_modules\ionic-native\dist\plugins\

 ,文件 
datepicker.js
 存在(当然),但不包含每个平台的特殊性。

怎么了?为什么项目中添加了插件,

datepicker.js

下的
[my project]\nodes_modules\ionic-native\dist\plugins\
却没有包含各个平台的特殊性?

ionic2 cordova-plugins
1个回答
1
投票
我找到了解决方法:

在[我的项目]中 odes_modules\ionic-native\dist\plugins[android|ios|windows]\datepicker.js

代码末尾写着:

var datePicker = new DatePicker(); module.exports = datePicker; // Make plugin work under window.plugins if (!window.plugins) { window.plugins = {}; } if (!window.plugins.datePicker) { window.plugins.datePicker = datePicker; }
因此,它使得 datePicker (以小写字母开头)与 DatePicker (以 ionic-native 的大写字母开头)不同。

在我需要它的组件中,我只是在组件之前声明:

declare var datePicker: any;
然后在该组件内我更改了代码:

let options = { date: new Date(), mode: 'date', androidTheme: datePicker.ANDROID_THEMES.THEME_HOLO_LIGHT }; DatePicker.show(options).then( (date) => { console.log('date_value:' + date) }).catch( (error) => { });
它有效。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.