【发布时间】:2018-09-23 03:31:28
【问题描述】:
我什至不确定我正在尝试的事情是否可行,但是就这样吧。对于初学者,我有一个对象数组,其中每个对象都有两个键:值对。第一个键是“名称”,第二个键是“流派”。
这些对象中的每一个都被映射到一个 div 中,使用其在类中的流派,然后将其放入容器 div 中。我想要做的是通过类名控制每个单独的 div 的类,我通过组件的状态进行控制。我的想法如下:
constructor(props) {
super(props);
this.state = {
fineArt: false,
game: false,
literature: false,
movie: false,
music: false,
tv: false
}
<div className="inspiration-container">
{inspirations.map((item) => (`${this.state}.item.genre`) ? <div className={`inspiration ${item.genre}__selected`} key={item.name}>{item.name}</div> :
<div className={`inspiration ${item.genre}`} key={item.name}>{item.name}</div>)}
</div>
一个使用“游戏”的例子是它映射 div 并检查“this.state.game”的值。如果该值为 true,则使用“inspiration game__selected”类呈现 div,如果为 false,则只会呈现“inspiration game”。
我知道这种事情是可能的,因为我已经将它用作:
{this.state.game ?
<a className="inspiration-button" onClick={this.toggleGame}><div className="game-button__selected"></div>Game</a> :
<a className="inspiration-button" onClick={this.toggleGame}><div className="game-button__unselected"></div>Game</a>}
我的两个思路是:1)我做错了,或者 2)我无法以这种方式访问状态(因为映射的工作方式)。如果我做错了什么,我认为它会在我的三元运算符开头的某个地方。我得到的当前结果是三元运算始终为真。
感谢您阅读本文以及您可以提供的任何帮助。
【问题讨论】:
-
你应该考虑使用类名包来实现这种功能:npmjs.com/package/classnames
-
我还在学习 React 的一些细节,所以我还在学习所有不同的包。这绝对是我应该检查的,谢谢。
标签: reactjs css-selectors