繁体   English   中英

Ionic v4.12 ion-picker 找不到任何方法来处理某列的项目选择更改

[英]Ionic v4.12 ion-picker can not find any way to handle item selected change of a column

我在 ionic V4.12 中使用 ion-picker 组件,我有 3 列。 当我选择第一列的一个项目时,我需要过滤第二列的项目,但我找不到任何方法来解决我的问题

我发现 PickerColumn 有刷新功能,但还是不行

import { PickerController } from '@ionic/angular';

@Component({
  ...
})
export class ComponentPage {
  constructor(public pickerCtrl: PickerController) { }

  async openPicker() {
    const picker = await this.pickerCtrl.create({
      buttons: [{
        text: 'Done',
      }],
      columns: [
        {
          name: 'days',
          options: [
            {
              text: '1',
              value: 1
            },
            {
              text: '2',
              value: 2
            },
            {
              text: '3',
              value: 3
            },
          ]
        },
        {
          name: 'years',
          options: [
            {
              text: '1992',
              value: 1992
            },
            {
              text: '1993',
              value: 1993
            },
            {
              text: '1994',
              value: 1994
            },
          ]
        },
      ]
    });
    await picker.present();
  }
}

当我在 days 列中选择 1 时,我只想显示名为 1994 的项目。

我向 IONIC TEAM 提出请求,答案是听 ionPickerColChange Even

picker.addEventListener('ionPickerColChange', async (event: any) => {
     here handle some logic
} 

您可以像这样收听 onDidDismiss 方法:

async openPicker() {
    const picker = await this.pickerCtrl.create({
      buttons: [{
        text: 'Done',
      }],
      columns: [
        {
          name: 'days',
          options: [
            {
              text: '1',
              value: 1
            },
            {
              text: '2',
              value: 2
            },
            {
              text: '3',
              value: 3
            },
          ]
        },
        {
          name: 'years',
          options: [
            {
              text: '1992',
              value: 1992
            },
            {
              text: '1993',
              value: 1993
            },
            {
              text: '1994',
              value: 1994
            },
          ]
        },
      ]
    });

    picker.onDidDismiss().then(({data}) => console.log(data.years.value));

    await picker.present();
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM