javascript - 小程序 picker 對于 objArray 怎么取值
問題描述
小程序 picker 組件,看 demo 里面是有 objArray 這個類型,但是又沒有用到,我現在就是y有一組 objArray 需要用到,但是怎么都不能正常顯示,麻煩大家幫忙看下:
小程序 demo 鏈接:picker
wxml:
<picker bindchange='bindPickerChange' value='{{index}}' range='{{objectArray}}'> <view class='picker'> 當前選擇:{{objectArray[index]}} </view></picker>
js:
Page({ data: { objectArray: [ {id: 0,name: ’美國’ }, {id: 1,name: ’中國’ }, {id: 2,name: ’巴西’ }, {id: 3,name: ’日本’ } ] }, bindPickerChange: function(e) { console.log(’picker發送選擇改變,攜帶值為’, e.detail.value) this.setData({ index: e.detail.value }) }})
這樣的話,顯示的下拉選項就是[object Object],選中之后在頁面顯示的也是這樣,我現在是想下拉列表顯示 name 里面的值,然后知道選中的 id,實在是不知道怎么實現了。。。
問題解答
回答1:使用這個屬性應該是可以的,修改后的代碼如下:
<picker bindchange='bindPickerChange' value='{{index}}' range-key='name' range='{{objectArray}}'> <view class='picker'> 當前選擇:{{objectArray[index].name}} </view></picker>
Update1:
Page({ data: { objectArray: [ {id: 0,name: ’美國’ }, {id: 1,name: ’中國’ }, {id: 2,name: ’巴西’ }, {id: 3,name: ’日本’ } ] }, bindPickerChange: function(e) { console.log(’picker發送選擇改變,攜帶值為’, e.detail.value) var index = e.detail.value; var currentId = this.data.objectArray[index].id; // 這個id就是選中項的id this.setData({ index: e.detail.value }) }})回答2:
添加 range-key=’obj.item’,例如
<picker bindchange='bindPickerChange' value='{{index}}' range-key='name' range='{{objectArray}}'> <view class='picker'> 當前選擇:{{objectArray[index].name}} </view></picker
相關文章:
1. 如何解決docker宿主機無法訪問容器中的服務?2. 前端 - CSS3 box-shadow如何設置,或者用什么方法可以產生圖中這樣陰影的效果。3. html - css 如何讓文字標題顯示在邊框上?4. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????5. 在應用配置文件 app.php 中找不到’route_check_cache’配置項6. html按鍵開關如何提交我想需要的值到數據庫7. html - 微信端video標簽播放mp4視頻,安卓端提示視頻解析錯誤8. HTML5中怎么判斷用戶是否正在瀏覽頁面?9. html5 - 微信開發的時候老是報這樣的錯誤errmsg config invalid signature10. vim中編輯HTML文件時換行不能縮進
