custom-list-item.uvue 758 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
<template>
  <view ref="box" class="custom-list-item-box">
    <slot></slot>
  </view>
</template>

<script>
  export default {
    name: "custom-list-item",
    props: {
      item: {
        type: Object as PropType<any>,
        required: true
      }
    },
    inject: {
      cachedSize: {
        type: Map as PropType<Map<any, number>>,
        default: () : Map<any, number> => {
          return new Map<any, number>()
        }
      },
    },
    mounted() {
      nextTick(() => {
        uni.createSelectorQuery().in(this).select('.custom-list-item-box').boundingClientRect().exec((ret) => {
          (this.cachedSize as Map<any, number>).set(this.item, (ret[0] as NodeInfo).height!)
        })
      })
    }
  }
</script>

<style>

</style>