如下代码为什么没有显示,如果手动['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;
}
TextPicker组件的range属性接收的是一个二维数组,但是可能由于数据的格式或类型不匹配,导致组件无法正确显示。
也有可能是其他属性的设置影响了TextPicker的显示,例如组件的大小、位置、样式等属性可能被默认设置为不可见或不适当的值。