【发布时间】:2021-05-28 15:01:53
【问题描述】:
我需要进行设置,例如复选框的值是否为真,然后复选框显示选中如果值为假复选框被选中,但它的值从后端变为真发生了什么我将值存储在状态规则中,但是它没有启用,如果值变为真,当值为真时,我无法检查和未选中复选框复选框不检查值何时为真为什么它会发生不确定我也在尝试设置 onChange,但对如何设置感到困惑改变
来自后端的价值
NameMatch: true
Match: true
SearchForm 组件
export default function SearchForm() {
const { setRules, rules, fetchSearch } = useRule();
const [changeRuleSettings, setChangeRuleSettings] = React.useState(false);
React.useEffect(() => {
fetchSearchRule();
}, []);
const handleCheckBoxChange = (e) => {
setRules((prevRules) => ({
...prevRules,
[e.target.name]: !prevState[e.target.checked],
}));
};
return (
<Grid item xs={4}>
<Box className={classes.formText}>
<Checkbox
style={style}
name="NameMatch"
checked={rules.NameMatch}
color="primary"
onChange={handleCheckBoxChange}
/>
<Typography variant="subtitle2" noWrap={true}>
Match
</Typography>
</Box>
</Grid>
)
}
【问题讨论】:
-
你是如何在
rulesstate 中存储价值的? -
再次检查代码我更新了@miraj
标签: javascript reactjs