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语法,但循环项缺少唯一标识字段。
解决方案:
-
添加唯一标识字段 在循环数据中确保每个项都有唯一的
id字段:<view s-for="item in list" trackby="id">{{item.name}}</view>或者使用其他唯一字段:
<view s-for="item in list" trackby="itemId">{{item.name}}</view> -
使用
:key替代(推荐) 新版本uni-app推荐使用Vue标准的:key:<view v-for="(item, index) in list" :key="item.id">{{item.name}}</view> -
使用索引作为key(不推荐,仅临时使用)
<view v-for="(item, index) in list" :key="index">{{item.name}}</view>
建议:
- 将
s-for和trackby语法更新为标准的v-for和:key - 确保循环数据中的每个项都有唯一标识
- 避免使用索引作为key,除非列表是静态的
这样可以解决编译错误并提升应用性能。

