Select下拉选框SelectOption如何动态赋值?

Select下拉选框SelectOption如何动态赋值?

HarmonyOS
2024-06-03 21:58:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

定义一个Array<SelectOption>类型的数据,往数组中push类型为SelectOption的值,将数组作为Select的参数。

代码如下:

class Data{ 
  value: string 
  icon: Resource 
 
  constructor(value: string, icon: Resource) { 
    this.value= value; 
    this.icon= icon; 
  } 
} 
 
// xxx.ets 
@Entry 
@Component 
struct SelectExample { 
  @State text: string = "下拉菜单展示" 
  @State index: number = 2 
  @State space: number = 8 
  @State arrowPosition: ArrowPosition = ArrowPosition.END 
  @State arr: Array<SelectOption> = [new Data('数据0',$r("app.media.startIcon"))]; 
  private  count:number =0; 
 
  build() { 
    Column({space: 20}) { 
      Button('添加数据').onClick((event: ClickEvent) => { 
        this.count++; 
        this.arr.push(new Data('数据'+this.count,$r("app.media.startIcon"))) 
      }) 
      Select(this.arr) 
        .selected(this.index) 
        .value(this.text) 
        .font({ size: 16, weight: 500 }) 
        .fontColor('#182431') 
        .selectedOptionFont({ size: 16, weight: 400 }) 
        .optionFont({ size: 16, weight: 400 }) 
        .space(this.space) 
        .arrowPosition(this.arrowPosition) 
        .menuAlign(MenuAlignType.START, {dx:0, dy:0}) 
        .optionWidth(200) 
        .optionHeight(300) 
        .onSelect((index:number, text?: string | undefined)=>{ 
          console.info('Select:' + index) 
          this.index = index; 
          if(text){ 
            this.text = text; 
          } 
        }) 
 
    }.width('100%') 
  } 
}
分享
微博
QQ
微信
回复
2024-06-04 21:29:13
相关问题
JS 获取控件位置并动态赋值的问题
4024浏览 • 1回复 待解决
js api 中select组件如何使用
6976浏览 • 2回复 已解决
怎么获取select选中的值
7727浏览 • 1回复 待解决