使用v-for时,我试图获取数组的当前索引,如下所示:
<tr v-for="(item,index) in timetable">
Index: @{{index}}
<td>@{{ item.subject }}</td>
<div v-if="index == timetable.length - 1">
<td>@{{ item.lesson_end }}</td>
</div>
<div v-else>
<td>@{{ item.lesson_start }}</td>
</div>
</tr>
但是我只收到错误消息:
[Vue警告]:属性或方法“索引”未在实例上定义,但在渲染期间被引用。通过初始化属性,确保该属性在data选项中或对于基于类的组件都是反应性的。
为什么声称没有定义索引,根据文档,这应该是有效的?
答案 0 :(得分:2)
问题仅归因于无效的HTML结构。 Vue的render
函数无法正确插值结果,因此会出现该错误。
尝试类似
<tr v-for="(item,index) in timetable">
<td>Index: @{{ index }}</td>
<td>@{{ item.subject }}</td>
<td v-if="index == timetable.length - 1">@{{ item.lesson_end }}</td>
<td v-else>@{{ item.lesson_start }}</td>
</tr>