uniapp?u-picker多列用法以及設(shè)置默認(rèn)選中值
uview官方文檔并未對多列操作和如何設(shè)置默認(rèn)值做過多的說明,本文就其來做詳細(xì)的使用解釋:
一、簡介
<u-picker title="選擇圖書館/崗位" keyName="name" @cancel="cancelChange" :loading="loading" ref="uPicker" @change="changeHandler" @confirm="libConfirm" :show="showChange" :columns="[changeLibList, changeDpartList]"></u-picker>
- keyName="name" ,意思是把 name 作為 piker 選項顯示的關(guān)鍵字
- columns作為一個數(shù)組,其內(nèi)部有幾個成員,則代表有當(dāng)前piker有幾列
- cancel、change、confirm 分別為取消、改變選值和確定執(zhí)行的幾個方法
- title為piker的頂部標(biāo)題;loading為true時,會打開加載動畫

二、 使用
本文的 columns = [changeLibList, changeDpartList] 里面有changeLibList 和changeDpartList 兩個數(shù)組成員,changeLibList 為第一列數(shù)據(jù),changeDpartList 為第二列數(shù)據(jù)。changeLibList 和 changeDpartList 數(shù)據(jù)結(jié)構(gòu)大概如下所示:
this.changeLibList = [{"id":1,"name":"賽爾威"},{"id":2,"name":"龍崗圖書館"}]
this.changeDpartList= [{"id":1,"name":"行政"},{"id":2,"name":"人事"}]每次打開頁面時,在onShow勾子中重新請求接口數(shù)據(jù) (防止數(shù)據(jù)在別的系統(tǒng)有所變化,如果你的數(shù)據(jù)是固定不變的,則只獲取一次即可)
this.$refs.uPicker.setIndexs(0, 0) 設(shè)置第一列的默認(rèn)選中值為第一個(微信小程序無法將picker實例傳出來,只能通過ref操作),但此方法只適用于小程序,app用此方法后可能會造成列表不能滑動等bug
async onShow () {
// 每次都重新拿新數(shù)據(jù)
this.changeLibList = await UserApi.libraryListOfuser(this.user.id)
this.changeDpartList = await UserApi.getLibraryJobList(this.changeLibList[0].id)
// 防止每次默認(rèn)選中值不一致,設(shè)置其每一列的默認(rèn)選中值都為第一個
this.$refs.uPicker.setIndexs(0, 0)
},在每次切換時,調(diào)用 changeHandler方法請求接口拿到對應(yīng)的第二列數(shù)據(jù),賦值給changeDpartList,如下:
async changeHandler(e){
const {
value,
columnIndex,
} = e
if (columnIndex === 0) {
// 打開加載狀態(tài)
this.loading = true
// 模擬網(wǎng)絡(luò)請求
this.changeDpartList = await UserApi.getLibraryJobList(value[0].id)
// 關(guān)閉加載狀態(tài)
this.loading = false
}
},附:uview組件庫 u-picker組件選項滑動選中延時、單列選擇器默認(rèn)選中
1、u-picker組件選項滑動選中延時的問題只需添加一個屬性 :immediateChange='true'
2、單列選擇器默認(rèn)選中某一項只需添加一個屬性,把指定下標(biāo)給它 :defaultIndex="[1]"
<u-picker @haddlePicker="haddlePicker" :showToolbar="true" @cancel="showDate = false" :show="showDate" title="請選擇航班日期" :columns="timeList" keyName="name" :defaultIndex="[1]" :immediateChange='true' ></u-picker>
總結(jié)
到此這篇關(guān)于uniapp u-picker多列用法以及設(shè)置默認(rèn)選中值的文章就介紹到這了,更多相關(guān)u-picker多列用法與默認(rèn)選中值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
uniapp開發(fā)小程序?qū)崿F(xiàn)滑動頁面控制元素的顯示和隱藏效果
這篇文章主要介紹了uniapp開發(fā)小程序?qū)崿F(xiàn)滑動頁面控制元素的顯示和隱藏效果,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
uni-app實現(xiàn)web-view圖片長按下載解決方案
uniapp的web-view中圖片無法長按保存,IOS下是正常的,但是Android下長按無反應(yīng),這篇文章主要介紹了uni-app實現(xiàn)web-view圖片長按下載解決方案,需要的朋友可以參考下2023-09-09
微信小程序?qū)崿F(xiàn)頁面導(dǎo)航的方法詳解
這篇文章主要為大家詳細(xì)介紹一下微信小程序?qū)崿F(xiàn)頁面導(dǎo)航的幾種方法以及幫助大家掌握如何使用頁面之間的導(dǎo)航跳轉(zhuǎn),感興趣的可以了解一下2022-07-07
JS實現(xiàn)頁面超時后自動跳轉(zhuǎn)到登陸頁面
這篇文章主要介紹了JS實現(xiàn)頁面超時后自動跳轉(zhuǎn)到登陸頁面,需要的朋友可以參考下2015-01-01
Bootstrap實現(xiàn)默認(rèn)導(dǎo)航欄效果
這篇文章主要介紹了Bootstrap實現(xiàn)默認(rèn)導(dǎo)航欄效果,導(dǎo)航欄是一個很好的功能,是Bootstrap網(wǎng)站的一個突出特點,本文帶領(lǐng)大家學(xué)習(xí)實現(xiàn)Bootstrap導(dǎo)航欄,需要的朋友可以參考下2015-12-12

