【发布时间】:2021-10-22 04:52:26
【问题描述】:
Firestore 数据库字段(review 集合中的reviewPrivacy)是字符串类型,从具有三个可能答案(值)之一的 Vue 表单条目(单选)填充:keepFullyPrivate 在其中。
如果review.reviewPrivacy 的值为keepFullyPrivate,我试图仅显示<h2>The reviewer's identity is private</h2>。
一旦这工作正常,我将添加一个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 中产生以下文本:此评论的隐私选择:postAnonPublic,即v-else-if条件。
第二次更新:按照 cmets 的要求将代码作为一个完整的块:
<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>
谢谢!
【问题讨论】:
-
很难找出问题所在,因为代码被分成不同的部分。你能分享完整的完整(minimal, reproducible example)吗?
-
没有
v-if="review.reviewPrivacy === keepFullyPrivate">和v-else-if="review.reviewPrivacy === 'postAnonPublic'"工作?进行此更改后,您是否尝试过重新启动 Vue 服务器
标签: vue.js google-cloud-firestore conditional-formatting