【发布时间】:2019-08-13 09:41:04
【问题描述】:
我只是从 reactJS 和一般编码开始。我现在不能让它工作:
我正在使用 .map() 循环数据,并且我想提供一个类名,该类名会随着我从 API 获得的数据类型而变化。
这就是为什么我做了一个 'if-else' 语句来创建一个包含类名必须是什么的数组
但是className总是取最后一项
我的 if-else 语句
for (let i = 0; i < 10; i++) {
let Cstyle = []
if (this.state.results[i].group === 'one') {
Cstyle = 'one'
}
else if (this.state.results[i].group === 'two') {
Cstyle = 'two'
}
else if (this.state.results[i].group === 'three') {
Cstyle = 'three'
}
this.setState({style : Cstyle})}
我的地图
{this.state.results.map((res, index) => (
<div key={index} className={'activity' + ' ' + [this.state.style]}>
<p>res.test</p>
</div>
))}
当我从我的 API 中获取“一”时,我希望得到一个列表,其中某些项目的 className=“一”,与“二”和“三”相同。
【问题讨论】:
-
className={'activity' + ' ' + this.state.results[index].group}
-
Owww.. 答案很简单,我一直在寻找解决方案.. 非常感谢和抱歉这个愚蠢的问题! @MukeshSoni
-
1.你可以用
Cstyle = this.state.results[i].group;替换这三个if块 2. 你会想要Cstyle[i] = ...虽然 3. 根本不需要设置状态,因为你可以直接在map函数中插入组。 -
就像 Mukesh 说的:
className={['activity', res.group].join(' ')}和<p>{res.test}</p>
标签: javascript reactjs