van-picker組件default-index屬性設(shè)置不生效踩坑及解決
van-picker組件default-index屬性設(shè)置不生效
官方文檔:default-index 單列選擇時,默認選中項的索引 number | string 0
defaultIndex 這個屬性只是一個初始值,
如果需要動態(tài)改變 index索引:
建議使用 picker 實例的 setIndexes 方法
通過 ref 可以獲取到 Picker 實例并調(diào)用實例方法,
setIndexes 設(shè)置所有列選中值對應(yīng)的索引 indexes -
// 1.給van-picker設(shè)置ref,如ref="van_picker" <van-popup v-model="showPicker" position="bottom"> <van-picker show-toolbar value-key="label" ref="van_picker" :columns="columns" :default-index="defaultBuIndex" @confirm="onConfirm" @cancel="showPicker = false" /> </van-popup> // 2. 在需要的方法中調(diào)用: this.$nextTick(() =>{ this.$refs.van_picker.setIndexes([0]) // 注意這里是數(shù)組[索引值] })
vant picker組件踩坑
vant Picker組件,不顯示頂部欄,change事件拿到的值有1-2s延遲問題
ui設(shè)計如圖
因需求要求,picker去掉頂部欄,點擊下方確認按鈕的時候獲取選中的值
方法一
綁定change事件,選項改變時觸發(fā)(但是有1s的延遲,操作太快了會取不到值,不可取)
<van-picker ? ? :show-toolbar="true" ? ? :columns="reason" ? ? ref="picker" ? ? @change="change" ? /> ? ? <div class="btn" @click="handlePopSubmit('reason')">確認</div> change(value){ //單列:Picker 實例,選中值,選中值對應(yīng)的索引 //多列:Picker 實例,所有列選中值,當(dāng)前列對應(yīng)的索引 }
方法二
通過使用ref,調(diào)用ref的confirm方法(和方法一是一樣的,有1s的延遲,操作太快了會取不到值)
<van-picker ? ? :show-toolbar="true" ? ? :columns="reason" ? ? ref="picker" ? ? ref="pick" ? /> ? <div class="btn" @click="handlePopSubmit('reason')">確認</div> handlePopSubmit(){ ?? ?console.log('選中的值',this.$refs.picker.getValues) }
方法三
有點笨拙,但是不會出問題
vant-picker的show-toolbar設(shè)置為true,但是在頁面上對頂部的導(dǎo)航欄樣式隱藏(例如:display:none)
<van-picker ? ? :show-toolbar="true" ? ? :columns="reason" ? ? ref="picker" ? ? @confirm="handleReasonChange" ? /> ? <div class="btn" @click="handlePopSubmit('reason')">確認</div> handleReasonChange(value, index) { //value :選中的值 取值即可 //index: 下標(biāo) ?? ? } handlePopSubmit(){ ?? ? let pickReason = (this.$refs.picker as any).$el.children[0].children[1]; //拿到頂部欄的確認元素 ? ? ? pickReason.click(); //執(zhí)行一下 ?}
目前想到的解決辦法只有這三種!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue的.vue文件是怎么run起來的(vue-loader)
通過vue-loader,解析.vue文件,在webpack解析,拆解vue組件 ,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下2018-12-12vue 全選與反選的實現(xiàn)方法(無Bug 新手看過來)
下面小編就為大家分享一篇vue 全選與反選的實現(xiàn)方法(無Bug 新手看過來),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02關(guān)于element-ui中@selection-change執(zhí)行兩次的問題
這篇文章主要介紹了關(guān)于element-ui中@selection-change執(zhí)行兩次的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08關(guān)于vue3 vuex4 store的響應(yīng)式取值問題解決
這篇文章主要介紹了vue3 vuex4 store的響應(yīng)式取值問題,在實際生活中遇到這樣一個問題:在頁面中點擊按鈕,數(shù)量增加,值是存在store中的,點擊事件值沒變,如何解決這個問題,本文給大家分享解決方法,需要的朋友可以參考下2022-08-08