關於微信小程序多層嵌套渲染列表以及嵌套列表中數據的獲取

起因:意圖是想實現類似於安卓viewpager那樣的效果,想到了用微信小程序的swiper組件,但如果每個swiper-item裏都只用一個wx:for來渲染數據的話實在是太慢了,就想到多層嵌套數據渲染來提高效率。

直接上代碼

wxml:

<view wx:for="{{one}}" wx:key="id">
  <view>----{{item.name}}----</view>
  <view wx:for="{{item.two}}" wx:for-item="two" wx:key="id">

    <view>----{{two.name}}----</view>
  </view>
  <view wx:for="{{item.three}}" wx:for-item="three" wx:key="id">
    ----{{three.name}}----
  </view>
 -------------------------------------------
</view>

js

    one: [{
        id: 1,
        name:'第一層',
        two: [{
          'id': 11,
          'name': '第二層第一個數據'
        }, {
          'id': 12,
            'name': '第二層第二個數據'
        }],
        three: [{
          'name': '第三層數據'
        }]
      },
      {
        id: 2,
        name: '第二次渲染第一層',
        two: [{
          'id': 13,
          'name': '第二層第一個數據2'
        }, {
          'id': 14,
            'name': '第二層第二個數據2'
        }],
        three: [{
          'name': '第三層數據'
        }]
      },
      {
        id: 3,
        name: '第三次渲染第一層',
        two: [{
          'id': 15,
          'name': '第二層第一個數據3'
        }, {
          'id': 16,
            'name': '第二層第二個數據3'
        }],
        three: [{
          'name': '第三層數據'
        }]
      }
    ]

實現效果圖:

clipboard.png

如果你想取其中一個數組的某個字段的值,可以用以下寫法:

    var twodata = this.data.one[0].two
    var text = twodata[1].name
    console.log(text)

clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章