[英]I need to set checkbox checked when its value is true
我需要設置,例如復選框的值是否變為真,然后復選框顯示選中如果值變為假復選框被選中,但它的值從后端變為真發生了什么我將值存儲在 state 規則中,但它沒有得到啟用,如果值變為真,當值為真時,我無法檢查和未選中復選框復選框不檢查值何時為真為什么它會發生不確定我也在嘗試設置 onChange,但對如何設置 onchange 感到困惑
來自后端的價值
exactMatch: true
Match: true
使用規則組件
const [rules, setRules] = useState([]);
const fetchSearch = (data) => {
axios
.get(API_ENDPOINTS.SEARCH_UPDATE, data)
.then((response) => setRules(response.data))
.catch((err) => {
console.log("error", err);
});
};
SearchRuleForm 組件
export default function SearchForm() {
const { setRules, rules, fetchSearch } = useRule();
React.useEffect(() => {
fetchSearchRule();
}, []);
const handleCheckBoxChange = (e) => {
setRules({
...rules,
[e.target.name]: !rules[e.target.name]
});
};
return (
<Grid item xs={4}>
<Box className={classes.formText}>
<Checkbox
name="exactMatch"
checked={rules.exactMatch}
color="primary"
onChange={handleCheckBoxChange}
/>
<Typography variant="subtitle2" noWrap={true}>
Match
</Typography>
</Box>
</Grid>
)
}
不知道我是否理解你的問題,我相信你目前無法配置你的 onChange function。 這個 function 應該可以解決您的問題
const handleCheckBoxChange = (e) => {
setRules({
...rules,
[e.target.name]: !rules[e.target.name]
});
};
像這樣實現handleCheckBoxChange function:
const handleCheckBoxChange = (e) => {
setRules((prevRules) => ({
...prevRules,
[e.target.name]: !prevRules[e.target.name],
}));
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.