reactjs - 使用 React Js 将 className 添加到数组中的第三项
问题描述
我有一个按钮和一个项目列表。当我单击按钮时,我试图将一个类添加到列表中的第三个对象。我可以将班级设置为特定的 ID 或孩子吗?
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
items: [],
bgColor: ''
}
}
jumpTo(e) {
// item = this.state.items[2];
//this.setState({ bgColor: 'blue' });
}
componentDidMount() {
axios.get('https://api.spacexdata.com/v2/launches')
.then((response) => {
//console.log(response.data)
this.setState({
items: response.data
})
})
.catch((err) => {
console.log('Error:', err);
})
}
render() {
const List = this.state.items.map((b, i) =>
<li key={i} id={'fn' + i}> Flight Number: {b.flight_number} and Mission_name: {b.mission_name}</li>
);
return (
<div>
<button onClick={this.jumpTo.bind(this)}></button>
<ul>
{List}
</ul>
</div>
);
}
}
render(<App />, document.getElementById("root"));
解决方案
id={'fn' + i}
如果您想以简单的方式进行操作,可以使用它
jumpTo(e)
{
document.getElementById("fn2").classList.add("classname");
}
或者你也可以这样做
jumpTo(e) {
const rawItem = this.state.items;
rawItem[2].classes = "classname";
this.setState({ items: rawItem });
}
render() {
const List = this.state.items.map((b, i) =>
<li key={i} id={'fn' + i} className={b.classes?b.classes:""}> Flight Number: {b.flight_number} and Mission_name: {b.mission_name}</li>
);
推荐阅读
- android - 将 Android 工件推送到 Azure DevOps 源
- c# - 你如何比较一个对象在数组中的位置?
- r - R中是否有允许用行标准的平均值替换NA的函数?
- c++ - 在 Ubuntu 上使用 CMake 和 Clion 构建 Boost 时出现未定义的参考错误
- python - 如何在 PHP 或 Python 中将灰度图像恢复/转换为 RGB 图像
- ios - 从后台线程检索应用程序状态?
- java - 如何使用 twitter4j 获取每个 twitter 收藏夹的日期
- express - 使用“publicPath”时构建的 Vue SPA 不起作用
- mysql - 如何在yii2的左连接中分配我需要数据的方法?
- .net - 有没有办法以编程方式禁用/启用触摸屏,而无需在 Windows 10 中重新启动或注销?