typescript - Ionic v4.12 ion-picker kan ikke finne noen måte å håndtere endring av valgt element i en kolonne
Jeg bruker ion-picker-komponenten med Ionic V4.12, og jeg har 3 kolonner. Når jeg velger ett element i den første kolonnen, trenger jeg å filtrere elementene i den andre kolonnen, men jeg kan ikke finne noen måte å løse problemet mitt på
Jeg fant ut at PickerColumn har en oppdateringsfunksjon, men den fungerer fortsatt ikke
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();
}
}
Når jeg velger 1 i kolonnen for dager, vil jeg bare vise elementet som heter 1994.
Svar #1
Jeg sendte en forespørsel til IONIC TEAM, og svaret er å lytte til ionPickerColChange Even
picker.addEventListener('ionPickerColChange', async (event: any) => {
here handle some logic
}
Svar #2
Du kan lytte til onDidDismiss-metoden slik:
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();
}
