You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lit Element在forEach循环遍历对象时无法渲染元素问题求助

问题根因

问题出在遍历方法选择错误:Array.prototype.forEach 没有返回值,执行后仅返回 undefined,因此模板引擎无法获取你生成的 <vaadin-item> 节点,自然无法渲染对应选项。你之前遍历数组能正常渲染,大概率是使用了会返回结果数组的 map 方法。

修复方案

将 forEach 替换为 map,直接返回生成的html片段即可,修改后代码如下:

<vaadin-select @change="${event => this.setLimit(event.target.value)}" value="${this.limit}" placeholder="Page Size" style="width: 80px">
  <template>
    <vaadin-list-box>
      ${Object.entries(this.pageSizeValues).map(([key, val]) => 
          html`
            <vaadin-item value=${key}>${val}</vaadin-item>
                 `
        )}
    </vaadin-list-box>
  </template>
</vaadin-select> 

可选优化

如果需要严格保证选项的排序顺序(避免对象数字键自动排序不符合预期),可以先对遍历结果做排序处理再生成节点:

Object.entries(this.pageSizeValues)
  // 按数值升序排序
  .sort((a,b) => Number(a[0]) - Number(b[0]))
  .map(([key, val]) => html`<vaadin-item value=${key}>${val}</vaadin-item>`)

内容的提问来源于stack exchange,提问作者Sergiu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:09:02