Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何更改已单击表格行的样式?_Reactjs - Fatal编程技术网

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);
}