【发布时间】:2021-10-14 12:08:26
【问题描述】:
我创建了类名“OccupancyChecked”,以便将其应用于检查的收音机标签,但由于某种原因我无法使其工作。
这是风格:
const Occupancy = styled.label`
//more code
.OccupancyChecked {
border: 1px solid rgba(255, 255, 255, 0.24);
background: #7f5cf1;
}
`;
下面是调用上面的className的代码。我试图做的是:只有两个收音机,所以我在第一个收音机上插入了一个onChange,结果在每个标签的类名中,如果收音机是checked或空白,它应该调用"Occupancy"类名否则,类名。我相信这个逻辑应该有效,但事实并非如此。我还创建了一个sandbox,以便显示正在运行的代码。
export default function App() {
const [occupancyChecked, setOccupancyChecked] = useState(0);
function changeOccupancyChecked() {
occupancyChecked === 0 ? setOccupancyChecked(1) : setOccupancyChecked(0);
return;
}
return (
<div className="App">
<Occupancy>
<label
htmlFor="radioTeacher"
className={occupancyChecked === 0 ? "OccupancyChecked" : ""}
>
<input
type="radio"
name="occupancy"
id="radioTeacher"
onChange={changeOccupancyChecked}
checked
/>
<span>I'm a teacher</span>
</label>
<label
htmlFor="radioStudant"
className={occupancyChecked === 1 ? "OccupancyChecked" : ""}
>
<input type="radio" name="occupancy" id="radioStudant" />
<span>I'm a studant</span>
</label>
</Occupancy>
</div>
);
}
如何解决这个问题?在选中的收音机中显示 className OccupancyChecked。
【问题讨论】:
标签: reactjs typescript radio-button label styled-components