【发布时间】:2020-09-10 09:13:20
【问题描述】:
下面是选项组件它会生成一堆选项问题是当我单击一个选项时,其他选项也被选中。我知道为什么会这样,但我无法解决
const InterestGenerator = () => {
const interest_emojis = [
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
{ name: "Comedy" },
];
const [selected, setSelected] = useState(false);
const handleClick = (e) => {
selected ? setSelected(false) : setSelected(true);
};
return (
<div className="interests_options">
{interest_emojis.map((interest) => {
return (
<div
className={`interest ${selected ? " interest_selected" : ""}`}
onClick={handleClick}
>
{!selected && (
<img
className="interest_emoji"
src={require("../assets/emoji_" + interest.name + ".png")}
alt="comedy_emoji"
/>
)}
{selected && <DoneIcon />}
<span>{interest.name}</span>
</div>
);
})}
</div>
);
};
export default InterestGenerator;
【问题讨论】:
-
您必须跟踪选择了哪个选项(唯一标识该选项的东西),而不仅仅是选择了一个选项。
标签: reactjs