uniapp [errorcode:90100099][编译错误]s-for trackby no track field error如何解决?

在uniapp开发中遇到编译错误:[errorcode:90100099] s-for trackby no track field error,具体报错信息是s-for循环缺少track字段。请问这个错误该如何解决?需要在哪里添加track字段,或者是否有其他解决方法?

2 回复

s-for 循环中添加 track-by 属性,例如 track-by="id",确保每个循环项有唯一标识字段。


这个错误是因为在uni-app的早期版本中,s-for循环使用了trackby语法,但循环项缺少唯一标识字段。

解决方案:

  1. 添加唯一标识字段 在循环数据中确保每个项都有唯一的id字段:

    <view s-for="item in list" trackby="id">{{item.name}}</view>
    

    或者使用其他唯一字段:

    <view s-for="item in list" trackby="itemId">{{item.name}}</view>
    
  2. 使用:key替代(推荐) 新版本uni-app推荐使用Vue标准的:key

    <view v-for="(item, index) in list" :key="item.id">{{item.name}}</view>
    
  3. 使用索引作为key(不推荐,仅临时使用)

    <view v-for="(item, index) in list" :key="index">{{item.name}}</view>
    

建议:

  • s-fortrackby语法更新为标准的v-for:key
  • 确保循环数据中的每个项都有唯一标识
  • 避免使用索引作为key,除非列表是静态的

这样可以解决编译错误并提升应用性能。

回到顶部