Reactjs 如何更改已单击表格行的样式?
我有更多的小组,他们有更多的小组成员。因此,如果用户单击其中一个成员,样式将仅更改已单击的元素的样式。你能帮我吗,我怎样才能设定一个特定的会员风格Reactjs 如何更改已单击表格行的样式?,reactjs,Reactjs,我有更多的小组,他们有更多的小组成员。因此,如果用户单击其中一个成员,样式将仅更改已单击的元素的样式。你能帮我吗,我怎样才能设定一个特定的会员风格 {team.members !== undefined && team.members.length !== 0 ? team.members.map((mem, indexOfMember) => { return ( <tbody key={indexOfMember}>
{team.members !== undefined && team.members.length !== 0 ? team.members.map((mem, indexOfMember) => {
return (
<tbody key={indexOfMember}>
{mem.member !== undefined && mem.member !== [] ?
(
<tr onClick={() => swapMember(indexOfTeamModel,indexOfMember)}>
<td>{indexOfMember + 1}</td>
<td>{mem.member.nameOfPlayer !== undefined ? mem.member.nameOfPlayer : mem.member.name !== undefined ? mem.member.name : "..."}</td>
<td>{mem.member.surenameOfPlayer !== undefined ? mem.member.surenameOfPlayer : mem.member.surename !== undefined ? mem.member.name : "..."}</td>
</tr>
) : <p>Loading...</p>
}
</tbody>
);
}) : <p>Loading ...</p>}
{team.members!==undefined&&team.members.length!==0?team.members.map((mem,indexOfMember)=>{
返回(
{mem.member!==未定义&&mem.member!==[]?
(
swapMember(IndexOfteModel,indexOfMember)}>
{indexOfMember+1}
{mem.member.nameOfPlayer!==未定义?mem.member.nameOfPlayer:mem.member.name!==未定义?mem.member.name:“…”}
{mem.member.surenameOfPlayer!==未定义?mem.member.surenameOfPlayer:mem.member.surename!==未定义?mem.member.name:“…”}
):正在加载
}
);
}):正在加载…}
首先,您需要为所有彩色的
存储颜色状态
然后设置
的样式,如下所示:
<tr style={{background: `${colorState[`${indexOfTeamModel}-${indexOfMember}`] ? colorState[indexOfMember] : defaultColor}`}}></tr>
谢谢你的回答。这个解决方案很好,但是现在如果我单击第一个团队中的第一个成员,绿色背景将显示在其他团队中的所有第一个成员上。你有什么办法解决它吗?@Ali,我把它修好了,状态键现在是唯一的,它是团队索引和成员索引的组合。非常感谢,现在它可以工作了:)我只需要添加colorState[indexOfMember]:defaultColor->colorState[
${IndexOfteModel}-${indexOfMember}
]就可以了
<tr style={{background: `${colorState[`${indexOfTeamModel}-${indexOfMember}`] ? colorState[indexOfMember] : defaultColor}`}}></tr>
const onClickTr = (indexOfTeamModel, indexOfMember) => {
const newColorState = {...colorState, [`${indexOfTeamModel}-${indexOfMember}`]: 'green' }; // change it to your color
setColorState(newColorState);
}