tft每日頭條

 > 圖文

 > 微信小程序picker樣式修改

微信小程序picker樣式修改

圖文 更新时间:2025-03-04 12:23:05

在微信小程序中,當用戶用到下拉選擇菜單時,我們經常使用picker,不過picker有一個小問題,就是獲取當前選中的值是數組的索引,同時令某一行選中,也是通過索引号傳遞實現的。目前我們經常使用的是數據庫中的id來保存數據。所以需要在這裡将微信picker組件中的value(數組索引号)換成我們真實數據中的id才好。

如下圖我們表中“工種”這個數組,其實是包含id和title屬性的。如果用戶切換選擇時,微信picker傳遞過來的是當前項在數組中的索引号,這裡我們需要通過索引号查詢到此元素的id也就是:this.data.workArr[e.detail.value].id這個代碼實現。

然後為了保持當前項被選中,我們傳遞給picker的value仍然需要是索引号,所以我們定義了一個字段workInx來保存每次變化後的索引号:

在changeWork方法保存workInx 為當前索引的值。在xml布局文件中value="{{ workInx }}"代碼實現對當前索引号位置的選中。

一、定義data數據

data: {

//用于picker展示的數據數組

workArr: [{

"id": 1,

"title": "電工"

},{

"id": 2,

"title": "瓦工"

}, {

"id": 3,

"title": "油工"

}

],

workId:0,//真實id(當前選擇的工種id,用于傳遞到後台)

workInx:0//picker當前選中的索引位置

},

//picker切換選擇的處理方法

changeWork: function (e) {

console.log(e);

this.setData({

' workId ': this.data.workArr[e.detail.value].id,

'workInx': e.detail.value

})

},

前端xml

<view class="centerPage-info-item">

<label>工種</label>

<label class="ico-moon icon-rightarrow"></label>

<picker mode="selector" class="centerPage" bindchange="changeWork" value="{{ workInx }}" range="{{ workArr }}" range-key="title">

<view class="picker">{{ workArr[workInx].title }}</view>

</picker>

</view>

微信小程序picker樣式修改(微信小程序picker組件使用自定義json數組的綁定id問題)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved