HarmonyOS picker选择器的数据源问题

官方代码如下:

@Entry
@Component
struct TextPickerExample {
  private select: number = 1
  private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4']

  build() {
    Column() {
      TextPicker({ range: this.fruits, selected: this.select })
        .onChange((value: string, index: number) => {
          console.info('Picker item changed, value: ' + value + ', index: ' + index)
        })
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

我想请问一下,这种选择器数据源里边的元素就只能是string类型吗?

一般的数据源里边的元素都是对象类型的呀,比如说省市区选择器,省市区的名称我只在前端展示的时候使用,业务逻辑肯定用的是对应的编码,这种我还得从对象里边把名称取出来组装成字符串数组,再根据被选中的索引值去数据源里边获取对应的对象,再获取对象里面的编码,好麻烦啊

HarmonyOS
2024-12-26 13:36:07
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
shlp

当前textPicker不支持label/value形式:

可以获取选择器值的索引,根据索引自行封装映射

下面一个demo可以参考:

interface Fruits {
  id: number
  name: string
}

@Entry
@Component
struct TextPickerExample {
  private select: number = 1
  private fruitsList: Fruits[] = [
    { id: 1, name: "apple1" },
    { id: 2, name: "orange2" },
    { id: 3, name: "peach3" },
    { id: 4, name: "grape4" },
  ]

  build() {
    Column() {
      TextPicker({ range: this.fruitsList.map((item) => item.name), selected: this.select })
        .onChange((value: string | string[], index: number | number[]) => {
          console.info('Picker item changed, value: ' + value + ', index: ' + index)
          this.fruitsList[index.toString()].id;
        })
        .disappearTextStyle({ color: Color.Red, font: { size: 15, weight: FontWeight.Lighter } })
        .textStyle({ color: Color.Black, font: { size: 20, weight: FontWeight.Normal } })
        .selectedTextStyle({ color: Color.Blue, font: { size: 30, weight: FontWeight.Bolder } })
    }.width('100%').height('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
分享
微博
QQ
微信
回复
2024-12-26 16:25:08
相关问题
HarmonyOS图片选择器相关问题
1216浏览 • 1回复 待解决
HarmonyOS 图库选择器
775浏览 • 1回复 待解决
lazyforeach替换数据源解决方案
1693浏览 • 1回复 待解决
HarmonyOS 图片选择器怎么实现
814浏览 • 1回复 待解决
HarmonyOS 有状态选择器
685浏览 • 1回复 待解决
TimePicker如何设置时间选择器范围?
7759浏览 • 1回复 待解决