【发布时间】:2021-08-07 02:37:44
【问题描述】:
在 VueJS 中,我有一个包含可以排序的列的表。一次只能排序一列。
排序前,按钮为fa-sort。排序后按钮变为fa-arrow-up,再次点击变为fa-arrow-down。
当我对导入 Vue 库脚本的项目进行原型设计时,v-if 有效。但是迁移到 Vue CLI 后,这不起作用。
现在,如果我单击排序按钮,则会应用排序但按钮图标不会改变。但是,如果我进入我的 Vue 工具并更改其中的 colBeingSorted 值,按钮图标确实会更新。
我尝试了很多事情:我将条件(或它的变体)移到了计算中,然后移到了方法中。我还打印并 console.logged 数据以确认它是我所期望的。在所有情况下,我都可以确认满足条件,但由于某种原因,图标没有更新。
有什么想法吗?有什么建议吗?
我已经大大减少了代码示例,因此它不显示排序功能,只显示按钮图标格式。 sortedAscending 在排序功能中更新,工作正常:
<table>
<thead>
<tr>
<th v-for="(column, prop) in header" :key="prop">
<button-component
v-if="colBeingSorted != prop"
:icon="'fas fa-sort'"
@click="colBeingSorted = prop"
>
<button-component
v-else-if="colBeingSorted == prop && sortedAscending == true"
:icon="'fas fa-arrow-up'"
>
<button-component
v-else-if="colBeingSorted == prop && sortedAscending == false"
:icon="'fas fa-arrow-down'"
>
{{ column }}
...
data() {
return {
colBeingSorted: -1,
}
}
【问题讨论】:
标签: vue.js font-awesome vue-cli