我有一组单选按钮。我通过useState管理状态。当用户选择一个单选按钮时,其他单选按钮应该变为false。我正在尝试一个基本的if else来处理这个问题。我觉得我做错了,可以更有效地完成。有没有其他方法可以做到这一点。请帮助。
const [trans,setTrans] = useState({
expense : false, income : false,
lend : false}
);
const setRadio = (event)=>{
const buttonName = event.target.id;
if(buttonName==="expense"){
setTrans((prev) =>({...prev,[buttonName]:true,income:false,lent:false}));
}
if(buttonName==="income"){
setTrans((prev) =>({...prev,[buttonName]:true,expense:false,lent:false}));
}
if(buttonName==="lent"){
setTrans((prev) =>({...prev,[buttonName]:true,income:false,expense:false}));
}
}
1条答案
按热度按时间n53p2ov01#
不需要填充状态。您可以执行以下操作:
参考代码sandbox链接:https://codesandbox.io/s/radio-react-jlxhuf