天天看點

微信小程式picker滾動選擇器使用詳解

picker基礎使用

picker滾動選擇器(下簡稱picker)是微信小程式自帶的元件,無需引入任何檔案,隻要在适當的位置放入picker代碼點選後就可以從底部彈起的滾動選擇器。

<picker>最簡單使用</picker>
           
微信小程式picker滾動選擇器使用詳解

當然我沒有定義資料,是以選擇器裡面是沒有内容的。

picker指派

如何給上面的滾動選擇器裡面賦上值呢?使用range就可以在滾動選擇器裡面加入選擇内容。

<picker range="{{['1','2','3']}}">range指派</picker>
           
微信小程式picker滾動選擇器使用詳解

當然也可以綁定資料,但要注意的是資料隻能是["1","2","3"]這種格式數組。

微信小程式picker滾動選擇器使用詳解

多列picker選擇器

上面的滾動選擇器隻有一列,有時候我們需要兩列或者多列該如何使用呢?

使用mode = multiSelector來将其定義為多列選擇器。如果沒有設定則預設為普通選擇器,其它還有:

時間選擇器:mode = time

日期選擇器:mode = date

省市區選擇器:mode = region,這裡介紹多列選擇器。

<picker range="{{test}}" mode="multiSelector">多列滾動選擇器</picker>
           

設定其為多列選擇器後,需要通過資料來指定幾列,同樣使用上面的test資料的話,我們可以看到選擇器裡面是三列,原因便是test資料有三組,也就是通過數組的長度來決定有幾列選擇器的。

微信小程式picker滾動選擇器使用詳解

如果我們需要做兩列,則将資料定為兩組,每組中的資料則為該列的資料。如圖:

微信小程式picker滾動選擇器使用詳解

簡單點說,多列picker就是通過range的資料來控制幾列與列資料。如果想做三列就做三組資料,四列就做四組資料……

微信小程式picker滾動選擇器使用詳解

data: {

test: [

["第一列第一個", "第一列第二個", "第一列第三個"],//第一列資料

["第二列第一個","第二列第二個"],//第二列資料

["第三列"],

["第四列"]//需要做幾列就做幾組資料

]

},

picker事件監聽

picker滾動選擇器做出來後,要監聽其操作事件,主要的操作事件有兩個,bindchange(改變值事件,了解為點确定按鈕後觸發即可)與bindcolumnchange(清單改變事件,了解為滑動觸發事件,這個事件隻有在多列選擇器中有效),這裡我以多列選擇器為例測試一下這兩個事件:

微信小程式picker滾動選擇器使用詳解

bindchange事件:當點選确定後執行該事件,通過控制台輸出内容就可以發現輸出值為每一列選擇了哪一欄。e.detail.value值便是每一列選了第幾行。我這裡都選的是第一行是以value值為[0,0,0,0]。

微信小程式picker滾動選擇器使用詳解

bindcolumnchange事件:當我們滑動了選擇器中的某一列資料時,就會觸發該事件,在控制台中檢視,會顯示滑了哪一列,滑動到了哪一欄。

微信小程式picker滾動選擇器使用詳解

這裡我将控制台輸出事件改了一下,通過下面動圖能看得更仔細點。

微信小程式picker滾動選擇器使用詳解

定義滑動選擇器的選中

有些時候我們需要對滾動選擇器做一個預設選擇,這個時候可以通過value來設定各列的選擇狀态。如上面四列的如果我要設定預設都選第二個值,可以給value設定[1,1,1,1]。

微信小程式picker滾動選擇器使用詳解

小結:通過上面的介紹,我們可以了解到配置picker主要就是配置其内容、預設值、兩個事件。但是需要注意的是picker的value并不是實際應用中我們需要的value,是以往往實際上我們還需要再做一個資料來與這邊對應。

繼續閱讀