vue.js - 仅当 Firestore 字段值与特定字符串值匹配时,如何在 Vue 中有条件地显示?
问题描述
Firestore 数据库字段(reviewPrivacy
在review
集合中)是字符串类型,从 Vue 表单条目(单选)填充三个可能的答案(值)之一:keepFullyPrivate
在其中。
我试图仅<h2>The reviewer's identity is private</h2>
在值为review.reviewPrivacy
is时显示keepFullyPrivate
。
一旦这工作,我将添加一个v-if-else
然后v-else
选项,为每个显示不同的内容。
我的代码如下。
VSC 中没有标记任何错误,但值是什么并不重要 review.reviewPrivacy
- 标签中的文本<h2>
始终显示,无论它是否等于keepFullyPrivate
<div v-if="('review.reviewPrivacy', '==', 'keepFullyPrivate')"><h2>The reviewer's identity is private</h2></div>
更新(附加信息):
- 我正在使用 Vue 版本 3.2.1
- 来自 Firestore 的数据正在正确获取。例如,在与上述代码相同的父级中,此行
<p> Privacy choice for this review: {{ review.reviewPrivacy }} </p>
会在 DOM 中产生以下文本:Privacy choice for this review: postAnonPublic,这是v-else-if
条件。
第二次更新:代码作为一个完整的块,如评论中所要求的:
<div class="review-detailZ">
<div> <!-- BEGIN main (left-hand) column -->
<p> Privacy choice for this review: {{ review.reviewPrivacy }} </p>
<br />
<!-- Using Vue version 3.2.1 -->
<div v-if="('review.reviewPrivacy', '==', 'keepFullyPrivate')"><h2>The reviewer's identity is private</h2></div>
<div v-else-if="('review.reviewPrivacy', '==', 'postAnonPublic')"><h2>Incognito - review by{{ review.userName }}</h2></div>
<div v-else><h2>Reviewer chose to be fully public - full name is {{ review.userFirstName }} {{ review.userLastName }}</h2></div>
<br />
<p>Created {{ review.createdAt }} days ago</p>
<br />
</div>
谢谢!
解决方案
('review.reviewPrivacy', '==', 'keepFullyPrivate')
只是一个逗号分隔的字符串组,它计算为最后一个字符串:'keepFullyPrivate'
,因此您的标记变为v-if="'keepFullyPrivate'"
,这始终是真实的。因此, thediv
和 itsh2
总是被渲染。
review.reviewPrivacy
要比较的正确表达式'keepFullyPrivate'
是:
review.reviewPrivacy == 'keepFullyPrivate'
// or even better:
review.reviewPrivacy === 'keepFullyPrivate'
使用三等号 ( ===
) 进行严格比较是一种很好的做法。
所以最终结果应该是:
<div v-if="review.reviewPrivacy === 'keepFullyPrivate'"><h2>The reviewer's identity is private</h2></div>
推荐阅读
- pascal - Pascal(免费或 Turbo)读取
- javascript - 无序列表、列表项、JS/HTML问题
- excel - 即使 Excel 中存在多条记录,CopyFromRecordset 也仅在同一工作表中复制和粘贴第一行粘贴
- google-play - 是否只有明确的隐私政策才能避免 Google Play 中所有违反用户数据政策的行为?
- python - LSTM keras - 值错误如何解决输入维度
- javascript - 延迟函数调用并显示类图像 10 秒
- javascript - 您将如何在 discord.js 中定义用户的颜色?
- python - Python 3.6 - “字符串%元组”做什么?
- javascript - 如何让机器人将消息发送到“通用”频道或消息最多的频道?
- javascript - reactjs html呈现为字符串而不是html