小程序之picker 数据是 Object Array

1. 理解Picker控件

Picker是小程序中提供的一种用户选择数据的控件。它能够在一组预先定义好的数据中提供一个轻巧的滚动选择器,以供用户选择他们希望的项目。

Picker的数据类型通常是一个对象数组,数组中每个对象包含了需要显示的数据和对应的唯一标识。对于这种数据类型,需要预先为Picker提供一个数组数据源,Picker才能够正常使用。

1.1 Picker的数据类型

小程序中Picker控件支持多种数据类型。除了常见的Object Array类型以外,还可以使用MultiArray、Object MultiArray、Range类型,这里我们只讨论最为常见的Object Array类型。

1.2 Picker数据源的格式

在使用Picker之前,需要为其提供数据源。这个数据源是一个包含多个对象的数组,每个对象表示需要显示的数据和对应的唯一标识。具体格式如下:

const data = [

{ id: 0, name: '苹果' },

{ id: 1, name: '香蕉' },

{ id: 2, name: '橘子' },

{ id: 3, name: '柠檬' },

]

其中,每个对象都有id和name两个属性。id表示该对象的唯一标识符,name表示需要显示的数据。这个数组可以作为Picker的数据源直接使用。

2. 使用Picker控件

在理解了Picker控件后,我们可以开始尝试使用它了。下面我们将演示如何使用Picker控件实现一个简单的选择器,用户可以从中选择水果名字。

2.1 创建Picker控件

在页面的.wxml文件中创建Picker控件,在Picker组件的bindchange事件中记录用户选择的值:

<view>

<picker bindchange="pickerChange" value="{{fruitIndex}}" range="{{fruits}}">

<view class="picker">{{fruitName}}</view>

</picker>

</view>

上面代码中,使用了picker组件创建了一个Picker控件,并且在事件处理函数pickerChange中记录了选择的值。需要注意的是,当picker的值发生改变时,会触发bindchange事件,我们需要在事件处理函数中捕获事件,并且使用e.detail.value获取当前选择的值。

2.2 设置Picker数据源

在page.js中,设置Picker的数据源:

Page({

data: {

fruits: [

{id: 0, name: '苹果'},

{id: 1, name: '香蕉'},

{id: 2, name: '橘子'},

{id: 3, name: '柠檬'}

],

fruitIndex: 0,

fruitName: '苹果'

},

pickerChange: function(e) {

const index = e.detail.value;

const fruit = this.data.fruits[index];

this.setData({

fruitIndex: index,

fruitName: fruit.name

})

}

})

在代码中,为fruits设置了一个数据源,每个对象包含id和name属性。同时在fruits中设置了默认值索引fruitIndex和默认值fruitName,表示默认选中的水果——苹果。在e.detail.value改变后,我们更新了用户选择的值。

3. 注意事项

3.1 避免Picker数据源长度过长

Picker控件虽然使用方便,但是需要注意的是Picker数据源不要设置过长。如果设置过长,Picker在显示时可能会影响页面的性能。因此,在使用Picker控件时,需要提前确定需要显示的数据是否过多。

3.2 Picker的使用范围

Picker控件并不是适用于所有场景的控件。当数据量很大时,应该使用其他UI控件代替Picker。

4. 小结

Picker控件提供了一个方便用户选择数据的途径,可以帮助我们在小程序中快速实现用户数据的选择功能。但是,在使用Picker时需要注意控件的使用范围和数据源长度的问题。希望上述文章对你小程序Picker的学习有所帮助。