乐趣区

关于ionic:ionic解决picker选择器组件动态刷新选项重叠消失的问题

本地环境

Ionic:

   Ionic CLI                     : 6.17.1 
   Ionic Framework               : @ionic/angular 5.9.2
   @angular-devkit/build-angular : 12.0.0
   @angular-devkit/schematics    : 12.0.5
   @angular/cli                  : 12.0.5
   @ionic/angular-toolkit        : 4.0.0

问题阐明

多列抉择的时候,动静刷新其余列,呈现选项全挤在一行的状况,滑动后恢复正常。
属于官网未解决的 bug:
https://github.com/ionic-team…

解决方案

每列的选项数量固定为可能性的最大值,理论选项有余的时候填补空白选项,并设置 disabled 属性。这样空选项不会显示进去。

        if (newOptions.length < max) {for (let j = newOptions.length - 1; j < max; j++) {
                const disabledOption: PickerColumnOption = {
                    text: '',
                    value: -1,
                    disabled: true, // 空白选项不显示
                    transform: '', // 解决切换选项后,有时选项不会显示的问题
                }
                newOptions.push(disabledOption)
            }
        }

触发刷新还须要保障列 PickerColumn 的 prevSelected!= selectedIndex,比方新建列前者不设置,后者设为 0.

退出移动版