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

使用vue-lottie时报TypeError: Cannot read properties of undefined (reading 'length')

问题定位思路

这个报错本质是lottie底层解析动画数据时,拿到的图层配置是undefined,核心原因是传入的动画数据不符合预期,按以下步骤排查:

  • 先打印你传入lottie组件的animationData值,确认它不是undefined、null,是完整的JSON对象,包含layers、assets等标准lottie动画字段
  • 检查lottie组件的挂载时机:如果你的动画数据是异步获取的,组件挂载时数据还没返回,就会触发这个报错
  • 确认Vue版本和vue-lottie包的兼容性:原vue-lottie仅支持Vue2,Vue3环境下使用会出现数据解析异常

解决方案

  • 本地静态动画JSON引入错误修正
    不要使用动态require、不要加解构赋值引入JSON,正确引入方式:
    // 正确写法
    import animationData from '@/assets/xxx-animation.json'
    
    export default {
      data() {
        return {
          lottieOptions: {
            animationData: animationData,
            loop: true,
            autoplay: true
          }
        }
      }
    }
    
  • 异步加载动画数据修正
    给lottie组件加v-if判断,等数据加载完成后再渲染组件:
    <lottie 
      v-if="lottieOptions.animationData"
      :options="lottieOptions"
      :height="300"
      :width="300"
    />
    
  • Vue3环境兼容修正
    卸载原vue-lottie,安装适配Vue3的版本:
    npm uninstall vue-lottie
    npm install vue3-lottie
    
  • 动画文件损坏修正
    重新导出Lottie动画JSON,确认文件完整没有缺失字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:24:04