我有一个对象列表显示在前端,还有一个单选按钮。
当用户选中单选按钮时,相应的对象详细信息将存储在表单字段中。
问题是我所有的单选按钮都在检查,这意味着用户可以选择多个对象,我不希望这样。我该怎么办
这是代码
<Form>
{freelancerArray.map((val, index) => (
<div className="d-flex gap-4 r-div" key={index}>
<Form.Check type="radio"
aria-label="1"
onChange={(e) => {
if (e.target.checked) {
let acc = assignedfreelancer
acc.freelancerId = val.uid
acc.freelancerName = val.name.firstname + val.name.lastname
setAssignedFreelancer(acc)
} else {
console.log(assigneddata);
}
}}
value={assignedfreelancer}
/>
<div className="d-flex gap-3">
<div className="profile-image-div mt-1">
<img src={val.freelancerPhotoUrl} alt=" " className="profile-image"/>
</div>
<p className="mt-08 mb-0">{val.name.firstname} {val.name.lastname}</p>
</div>
</div>
))}
</Form>
这是所选自由职业者被更改为的状态
//form for freelancers that workorders are assigned to
const [assignedfreelancer, setAssignedFreelancer] = useState({
freelancerId: "",
freelancerName: ""
})
我的单选按钮像复选框一样工作,我不想要
- 您可以尝试以下方式:
<Form.Check type="radio"
aria-label="1"
onChange={(e) => {
if (e.target.value) {
let acc = assignedfreelancer
acc.freelancerId = val.uid
acc.freelancerName = val.name.firstname + val.name.lastname
setAssignedFreelancer(acc)
} else {
console.log(assigneddata);
}
}}
value={val.uid}
checked={assignedfreelancer.freelancerId === val.uid}
/>