Vue.js 'if - else' 不能使用很棒的字体

Posted

技术标签:

【中文标题】Vue.js \'if - else\' 不能使用很棒的字体【英文标题】:Vue.js 'if - else' not working with font awesomeVue.js 'if - else' 不能使用很棒的字体 【发布时间】:2019-03-06 08:52:16 【问题描述】:

这是我的代码:

<tr v-for="(i,  index) in items.data">
  <td> index </td>
  <td> i.name </td>
  <td> i.producer </td>
  <td><font-awesome-icon v-if="i.recieved" icon="check" /><font-awesome-icon v-else icon="times" /></td>
</tr>

我从服务器接收到数据,其中i.recieved 可以是truefalse,但是当我编译这个时,我总是只看到图标times。这很奇怪,因为我的服务器上有 4 个接收到的字段为 true。

那你觉得我应该怎么做?

在控制台中我只看到一个错误:

error: Elements in iteration expect to have 'v-bind:key' directives (vue/require-v-for-key) at src/views/Home.vue:15:7:

> 15 |       <tr v-for="(i,  index) in items.data">
     |       ^

【问题讨论】:

安装 vue-dev-tools 并确保你有 i.received=true 的项目。 我可以在服务器上看到它,所以是的,我有 那是我的失败!我写了收到,未收到 【参考方案1】:

您的控制台错误是因为您的 v-for 没有定义键。

建议尽可能使用 v-for 提供键,除非迭代的 DOM 内容很简单,或者您有意依赖默认行为来提高性能。

由于它是 Vue 识别节点的通用机制,因此该键还有其他用途,与 v-for 无关,我们将在后面的指南中看到。

More Info about the Key

【讨论】:

【参考方案2】:

正如警告所说,您需要添加一个密钥。 https://vuejs.org/v2/guide/list.html#key

试试这个。

<tr v-for="(i,  index) in items.data" :key="index">
  <td> index </td>
  <td> i.name </td>
  <td> i.producer </td>
  <td><font-awesome-icon v-if="i.recieved" icon="check" /><font-awesome-icon v-else icon="times" /></td>
</tr>

【讨论】:

那是我的失败!我写了收到,未收到

以上是关于Vue.js 'if - else' 不能使用很棒的字体的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 源码分析(十七) 指令篇 v-ifv-else-if和v-else 指令详解

Vue js:使用 v-if 和 v-else 语句更改 CSS

vue.js的条件渲染,其实就是模板里面写if else

typescript Javascript If else Simplified / Vue.js getter / Computed

Vue v-if,v-else-if,v-else的使用

vue.js的v-if判断数组多少个