Tencent / tdesign-vue

A Vue.js UI components lib for TDesign.
https://tdesign.tencent.com/vue
MIT License
920 stars 358 forks source link

[t-list] 虚拟滚动不生效 #3345

Closed nr-nanran closed 2 months ago

nr-nanran commented 2 months ago

tdesign-vue 版本

1.10.0/1.10.2

重现链接

No response

重现步骤

`

        <t-list-item
          :key="id"
          v-for="{
            id,
            cover,
            name,
            nickname,
            number,
            rank,
            obtain_time,
          } in showRankList"
          @click="rankItemClick(id, number)"
        >
          <div>
            <t-row align="center" justify="space-between" :gutter="10">
              <t-col class="rank" :span="1">{{ rank }}</t-col>
              <t-col class="img" :span="3"
                ><t-image
                  shape="round"
                  :src="avatarUrl(cover)"
                  :lazy="true"
              /></t-col>
              <t-col :span="5">
                <div class="name text-ellipsis">{{ name }}</div>
                <div class="gcolor text-ellipsis">{{ nickname }}</div>
              </t-col>
              <t-col :span="3" class="gcolor time">{{
                obtain_time | time
              }}</t-col>
            </t-row>
          </div>
        </t-list-item>
      </t-list>`

期望结果

虚拟滚动正常生效,初始化只加载几十个list-item

实际结果

虚拟滚动没有效果,初始化加载了几百个上千个list-item。 官网文档中,已渲染的dom中有: <ul class="t-list__inner" style="transform: translate(0px, 0px);"> 可是我的代码渲染之后没有这个style,我猜测和这个有关,具体原因不清楚,均已排查

框架版本

Vue(2.6.14)

浏览器版本

Edge129.0.2792.52 (正式版本) (64 位)

系统版本

Windows NT 10.0; Win64; x64

Node版本

20.14.0

补充说明

No response

github-actions[bot] commented 2 months ago

👋 @nr-nanran,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。

nr-nanran commented 2 months ago

已解决。 bug原因: t-list初始化时接口数据还没有响应,v-for循环的列表为空列表。 解决办法: 为list添加v-if判断数据列表的长度。