HarmonyOS TextPicker?

如下代码为什么没有显示,如果手动['1','2'....]这样赋值可以


@Component
export struct AppDateTimePicker {
  @State hoursMinutesData: string[][] = []
  private hoursData: string[] = []
  private minutesData: string[] = []
  private selectedTime: Date = new Date(Date.now())

  aboutToAppear(): void {
    this.hoursData = arrayTraversal(24)
    this.minutesData = arrayTraversal(60)
    this.hoursMinutesData = [this.hoursData, this.minutesData]

  }

  build() {
    Column() {

      TextPicker({ 
        range: this.hoursMinutesData 
      })
        .onChange((value: string | string[], index: number | number[]) => {
          console.info('TextPicker 多列:onChange ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index))
        })
    }
  }
}

export function arrayTraversal(length: number) {
  let arr: string[] = [];
  for (let i = 1; i < length; i++) {
    arr[i] = `${i}`.padStart(2, '0');
  }
  return arr;
}
阅读 3.3k
1 个回答

TextPicker组件的range属性接收的是一个二维数组,但是可能由于数据的格式或类型不匹配,导致组件无法正确显示。
也有可能是其他属性的设置影响了TextPicker的显示,例如组件的大小、位置、样式等属性可能被默认设置为不可见或不适当的值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进