<pre>
const [getselectedlist, setSelectedList] = React.useState([]);
const [getSelectIndex, setSelectIndex] = useState(0)
const setSelected = (getrow, index, selectIndex) => {
if (getSelectIndex !== selectIndex) {
setSelectedList([getrow])
setMobileNumberCandi(getrow.mobile)
console.log("res",getrow.mobile)
}
else {
if (getselectedlist.filter(e => e === getrow).length === 1) {
setSelectedList(getselectedlist.filter(e => e !== getrow));
} else {
setSelectedList(prevArray => [...prevArray, getrow]);
}
}
setSelectIndex(selectIndex)
};
<pre>
{props.row.candidateDetails ? props.row.candidateDetails.length > 0 ? props.row.candidateDetails.map((items, index) => (
<TableRow key={items.candguid} style={items.isCommunicated === true ? { background: '#e0e0e0' } : {}}>
<StyledTableCell style={items.isCommunicated === true ? { padding: "1px", textAlign: "center", fontFamily: "Titillium Web Light", fontWeight: 'bold' } : { padding: "5px", textAlign: "center", fontFamily: "Titillium Web Light" }}>
<Checkbox
checked={props.getselectedlist.filter(e => e.candguid === items.candguid).length === 1 ? true : false}
onChange={() => { props.setSelected(items, props.row, props.index) }}
name="checkedA"
/>
</StyledTableCell>
</TableRow>
)) : "There is no data" : ""}
What I have tried:
<pre>
const [getselectedlist, setSelectedList] = React.useState([]);
const [getSelectIndex, setSelectIndex] = useState(0)
const setSelected = (getrow, index, selectIndex) => {
var updatedList = [...getselectedlist];
if (getrow) {
updatedList = [...getselectedlist, getrow];
} else {
updatedList.splice(getselectedlist.indexOf(getrow), 1);
}
setSelectedList(updatedList);
setSelectIndex(selectIndex)
};