你好,我试图显示和隐藏特定的元素与复选框材料和现在发生的事情是,当一个复选框被选中,所有隐藏的div显示出来。
你可以在这里看到问题:https://stackblitz.com/edit/react-1ecdqb?file=demo.tsx
编辑:我知道我需要更多的变量在状态,但我问是否有一种方法来做到这一点,没有状态的每个复选框,因为会有10个以上的复选框
const UninstallView = () => {
const [isChecked, setIsChecked] = useState(false);
const handleChange = event => {
if (event.target.checked) {
setIsChecked(true);
}
else {
setIsChecked(false);
}
}
return (
<div>
<FormGroup>
<FormControlLabel control={<Checkbox onChange={handleChange} />} label="simple isn't what I expected" />
{isChecked ? <TextField
id="filled-multiline-static"
label="What did you expect from simple?"
multiline
rows={4}
defaultValue=""
variant="filled"
/>
: '' }
</FormGroup>
<FormGroup>
<FormControlLabel control={<Checkbox onChange={handleChange} />} label="simple isn't working correctly" />
{isChecked ?
<div>
<h1>hello</h1>
</div>
: '' }
</FormGroup>
</div>
);
1条答案
按热度按时间hc8w905p1#
您在2个复选框中共享1个状态。您应该有一个单独的状态来保存每个复选框的状态。
这段代码可以帮助:
Sandbox example