Дайте имя каждому из них и напишите для них onClick, так как ваш код неполон, мне трудно это сделать. Вот тот код типа, который вы хотите:
Код:
state={
username:'',//it tracks which element is being pressed
user:['maifeeulasad','maifee']
}
constructor(props){
super(props);
this.userList=this.userList.bind(this);
this.setUsername=this.setUsername.bind(this);
}
setUsername = (e) =>{
this.setState({username:e.target.getAttribute('name')})
}
userList = () =>{
return this.state.user.map((u)=>{
console.log(u);
return <li onClick={this.setUsername} id={u} name={u}>{u}</li>;
});
}
render() {
if(this.state.username==='' )
{
return (
<div>
Developer list:
{this.userList()}
</div>
);
}
else
{
return (
<div>
Developer list:
{this.userList()}
<a href={"https://github.com/"+this.state.username}>View My GitHub Profile</a>
</div>
);
}
}
песочница
В этом коде:
setUsername = e => {
this.setState({ username: e.target.getAttribute("name") });
};
Чтобы достичь этого, давайте определим css первый 'colo'
Теперь в нашем коде просто добавьте className={this.state.username === u ? "colo" : ""}
в return <li onClick={this.setUsername} id={u} name={u}>{u}</li>;
, и он сделает вашу работу. Проверьте обновленную песочницу, она должна работать.
Если работает, не забудьте поставить галочку и принять в качестве ответа.