微信小程序之 catalog 切換

組件名稱:catalog數組

組件屬性:catalogData,type:Stringthis

組件描述:這是一個子組件,數據從父組件中傳遞spa

效果圖:code

 

 catalog 目錄爲多個,使用 scroll-view 容器。可是在當前組件中,只寫每一個 catalog 數據展現並實現 catalog 切換效果,這樣會保證當前組件的最小粒度。orm

分析當前組件可能用到的屬性爲:組件名稱,切換狀態,未選中狀態,切換點擊方法。blog

<block wx:for="{{catalogData}}" wx:key="id" wx:for-item="item" class="item">
    <view class="scroll-view-item catalog-title {{curIndex == index ? 'catalog-active' : 'catalog-normal'}}" data-index="{{index}}" catchtap="goIndex">{{item.catalog}}</view>
</block>
curIndex 爲點擊當前 catalog 時獲取的 index
index 爲 catalogData 這個數組默認的 index, 也就是 data-index 的值
goIndex 爲點擊當前 catalog 的方法,經過點擊獲取到 curIndex 的值

經過判斷當前 curIndex 是否與數組中的 index 是否相等,若是相等,則給當前 catalog 添加選中的樣式 catalog-active,不然添加 catalog-normal。
更新默認 curIndex 的默認值

Component({
  /**
   * 組件的屬性列表
   */
  properties: {
    catalogData:{
      type: Array,
    }
  },

  /**
   * 組件的初始數據
   */
  data: {
      curIndex:0
  },
    
    /**
      * 組件的方法列表
      */
    methods: {
        goIndex(event) {
            let nextIndex = event.currentTarget.dataset.index;
            this.setData({
                curIndex: nextIndex
            })
           
            console.log(this.data.curIndex + '=' + nextIndex);
        },
    }
})
相關文章
相關標籤/搜索