【发布时间】:2018-01-24 02:16:54
【问题描述】:
我正在从后端获取的数据中渲染 4 个 div。我正在根据状态变化为这些 div 着色。到目前为止,我做得很成功,但唯一的问题是所有 4 个 div 都可以通过这种方式着色。当我为另一个 div 着色时,我想取消上一个 div 的颜色。我该怎么做?
我的代码
textVote() {
this.setState({
vote_status: !this.state.vote_status
})
}
handleClick(id) {
let vote_object = {
voting_object: id,
post_id: this.props.postId
}
this.props.submitvote(vote_object)
this.textVote();
}
render() {
console.log("getVoteStatus", this.props.getVoteStatus)
let {contents, submitvote, postId} = this.props
return (
<div className="txt_vote_bar_div" style={{backgroundColor: this.state.vote_status ? '#0b97c4' : 'white'}}>
<p className="txt_vote_choice" style={{color: this.state.vote_status ? '#FFFFFF' : '#6a6a6a'}}
id={contents.post_poll_content_id} onClick={() => {
this.handleClick(contents.post_poll_content_id);
}}> {contents.content} </p>
<p className="txt_tot_votes" style={{color: this.state.vote_status ? '#FFFFFF' : '#6a6a6a'}}> 56% (Votes: {contents.votes}) </p>
</div>
);
};
我怎样才能做到这一点,所以我只为一个 div 背景着色并在我选择另一个时删除背景颜色。谢谢。
【问题讨论】:
-
什么决定了哪个 div 应该被着色?在这个例子中我只能看到一个 div(它不在渲染函数中?)
-
@jye265 在 handleClick 方法中我正在更改状态。基于该状态背景着色正在发生
-
您是否以任何方式映射/循环此渲染函数?如果是,在什么时候?
-
该组件是否从父/容器组件中使用了 4 次?
标签: javascript html css reactjs state