Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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
Javascript 如何使用React JS将样式应用于在数组中单击的图标_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 如何使用React JS将样式应用于在数组中单击的图标

Javascript 如何使用React JS将样式应用于在数组中单击的图标,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,如何将样式应用于通过.map迭代的特定元素。当前,当我单击一个图标时,样式将应用于两个图标。我期待在点击图标时切换行为 这是我代码的要点 const [color, setColor] = useState(false); ... {arr.map(({ icon, styledIcon }, index) => ( <Grid key={index} item> <IonIcon onClick={()=> setColor(!color)} key={i

如何将样式应用于通过
.map
迭代的特定元素。当前,当我单击一个图标时,样式将应用于两个图标。我期待在点击图标时切换行为

这是我代码的要点

const [color, setColor] = useState(false);

...

{arr.map(({ icon, styledIcon }, index) => (
<Grid key={index} item>
  <IonIcon onClick={()=> setColor(!color)} key={index} icon={color ? icon : styledIcon} >
  </IonIcon>
</Grid>
))}
const[color,setColor]=useState(false);
...
{arr.map({icon,styledIcon},index)=>(
setColor(!color)}key={index}icon={color?icon:styledIcon}>
))}

您可以将其向下移动到另一个组件中,以便轻松跟踪。如果您不想这样做,您将需要使用ID数组或其他方法来跟踪主状态

{arr.map(({ icon, styledIcon }, index) => (
<Grid key={index} item>
    <MyStyledIcon key={index} icon={icon} styledIcon={styledIcon} />
</Grid>
))}


const MyStyledIcon = (props) => {
   const [color, setColor] = React.useState(false);

  <IonIcon onClick={()=> setColor(!color)} icon={color ? props.icon : props.styledIcon} >
  </IonIcon>
}
{arr.map({icon,styledIcon},index)=>(
))}
const MyStyledIcon=(道具)=>{
const[color,setColor]=React.useState(false);
setColor(!color)}icon={color?props.icon:props.styledIcon}>
}

您必须识别并拥有一个条件样式的应用程序。但很想知道它在拆分组件后是如何工作的,因为在
arr
中的所有项目之前,您只有一个color state变量。将其移动到自己的组件会为
arr