【发布时间】:2018-07-08 15:49:45
【问题描述】:
使用 Reactjs 和 Firebase,我有一个小型投票应用程序,可让您对条目投赞成票或反对票。登录后,您可以对条目进行投票(目前它们只是名称),并且它们从最多票到最少票对自己进行排序。当您将鼠标悬停在投票图标上时,它们会改变颜色,如下所示:
普通:
悬停:
.downVote {
align-items: center;
font-size: 1.0em;
padding-top: 2px;
margin-right: 3px;
float: right;
color: #fb655a;
cursor: pointer;
}
.downVote:hover {
border-width: 0px;
background-color: #fb655a;
color: #000;
}
我想找到一种方法在投票后保持悬停属性处于活动状态——这是一个:active(?) 状态,并让 Javascript 或 Firebase 记住为该用户保持投票图标处于该状态。因此,当用户对几个名字进行投票并稍后返回该页面时,他们将看到他们投票了哪些名字以及他们投票的内容。
我正在寻找如何实现这一目标的想法。
目前,在 firebase 中,我将用户的身份验证 ID (uid) 保存在他们投票的每个人的姓名中,1 或 -1 表示赞成或反对票。我确定可以使用该变量,但我不确定如何将其绑定到 Javascript 或 CSS。
提前感谢您的任何想法。
编辑
Firebase 布局:
所以对于这个用户 vKl6r...(在这种情况下是我),当我登录时,我应该看到名为 Test 的人旁边按下了赞成按钮,因为存储了一个 1。
这里是每个可以被投票的人的名字的布局(带有投票图标)
handleUpvote(id){
this.props.upvotePlayer(id)
}
handleDownvote(id){
this.props.downvotePlayer(id)
}
render(props){
return(
<div className="player fade-in">
<span className="vote up"
onClick={() => this.handleUpvote(this.playerId)}>
▲
</span>
<p className="playerContent">{this.playerContent}</p>
<span className="vote down"
onClick={() => this.handleDownvote(this.playerId)}>
▼
</span>
</div>
)
}
}
【问题讨论】:
-
对于这个问题最好把这个图标做成一个组件,然后在上面设置
onClickReact事件 -
你能发布你的 React 或 JS 代码吗?
-
如果您的 html 使用自定义属性,您可以使用 css 为特定元素着色: [vote-status="1"] { background-color: red; }
标签: javascript css reactjs firebase firebase-realtime-database