HarmonyOS鸿蒙Next中如何在多个相同类型的picker组件中赋不同值,谢谢!
HarmonyOS鸿蒙Next中如何在多个相同类型的picker组件中赋不同值,谢谢!
[list class=“list” divider=“true”] [list-item class=“listItem” id="{{$item.listItem_id}}" for="{{array}}"] [div class=“listContent”] [div class=“text”] [text class=“text1”]{{$item.num}}[/text] [text class=“text2”]{{$item.value}}[/text] [/div] [div class=“picker”] [div class=“pickerMl”] [image class=“xin” src=“common/images/xin.png”] [/div] [picker id="{{$item.pickerMl_id}}" value="{{textMl}}" selected="{{textselect}}" range="{{rangeMl}}" type=“text” onchange=“onchangeMl” oncancel=“textoncancel” class=“pickertext”] [/picker] [/div] [/div] [/list-item] [/list]
将selected的值设置在数组中,点击对应的按钮可以展示对应的picker,默认值也会根据数组中设置的值显示
<list class="listBox">
<list-item class="listItem" for="(idx,item) in listData">
<button class="btn" @click="clickHere(item.name)">item {{item.name}}</button>
<picker id="picker{{item.name}}" selected="{{item.textselect}}" range="{{rangetext}}"></picker>
</list-item>
</list>
更多关于HarmonyOS鸿蒙Next中如何在多个相同类型的picker组件中赋不同值,谢谢!的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
any?
有知道的小伙伴么?研究了好久…
欢迎开发小伙伴们进来帮帮楼主
在HarmonyOS鸿蒙Next中,若要在多个相同类型的picker组件中赋不同值,可以通过为每个picker组件绑定不同的数据源或状态变量来实现。具体步骤如下:
-
定义数据源:为每个picker组件准备不同的数据源。例如,假设有两个picker组件,分别用于选择城市和日期,可以定义两个不同的数组来存储城市和日期的选项。
-
绑定数据源:在UI布局文件中,为每个picker组件分别绑定对应的数据源。使用
@State
或@Link
装饰器来管理每个picker的选中状态。 -
处理选择事件:为每个picker组件设置不同的选择事件处理函数,以便在用户选择时更新对应的状态变量。
示例代码如下:
@Entry
@Component
struct PickerExample {
@State city: string = '北京'
@State date: string = '2023-10-01'
private cities: string[] = ['北京', '上海', '广州', '深圳']
private dates: string[] = ['2023-10-01', '2023-10-02', '2023-10-03']
build() {
Column() {
Picker({ range: this.cities, selected: this.city })
.onChange((value: string) => {
this.city = value
})
Picker({ range: this.dates, selected: this.date })
.onChange((value: string) => {
this.date = value
})
}
}
}
在这个示例中,city
和date
分别管理两个picker组件的选中状态,cities
和dates
数组分别作为两个picker的数据源。通过onChange
事件处理函数,可以在用户选择时更新对应的状态变量。
在HarmonyOS鸿蒙Next中,可以通过为每个picker组件设置不同的id
,并在代码中分别获取这些picker实例,然后为它们赋不同的值。例如:
// 在布局文件中定义两个picker
<picker id="picker1"></picker>
<picker id="picker2"></picker>
// 在JS代码中分别赋值
let picker1 = this.$element('picker1');
let picker2 = this.$element('picker2');
picker1.setValues(['值1', '值2']);
picker2.setValues(['值3', '值4']);
通过这种方式,可以为多个相同类型的picker组件赋不同的值。