const RoomAttendanceComponent = () => {
const [formData, setFormData] = useState({});
const [optionalIds, setOptionalIds] = useState([]);
let ids = []
const fetchAttendanceCriteria = (updatedFormData) =>
updatedFormData.classRoomNo && updatedFormData.selectedDay &&
(formData.classRoomNo !== updatedFormData.classRoomNo ||
formData.selectedDay !== updatedFormData.selectedDay);
const fetchAttendance = async (updatedFormData) => {
const response = await fetchAttendanceData(updatedFormData);
getAttendanceResults(response);
setFormData(updatedFormData);
};
const onChange = async ({ formData: updatedFormData, errors }) => {
if (fetchAttendanceCriteria(updatedFormData)) {
await fetchAttendance(updatedFormData);
}
if(updatedFormData.membersId){
ids = formatMembersId(formData.membersId);
setOptionalIds(parseInt(ids))
}
};
const updatedPresentIds = (presentIds) => {
if (presentIds) {
ids = [...optionalIds, ...presentIds];
}
return ids;
};
return (
<RoomAttendaceGridComponent />
<RoomAttendanceFormCompoenent />
)
}
updatedFormData.membersId gives me the id such as {'67', '6', '5'} which is what user has typed in the input field. But for some reason updating the setOptionalids state on the onChange functionality is breaking the pages.