I am adding a switch for adding time on a modal which is working absolutely fine and switching it off which deletes the time for that saved data. My query is I am fetching that saved data for that particular _id and setting switch value to true so that on useEffect switch should be enabled if data is present. But useEffect is not setting it to true. What am I doing wrong?
const [remindData, setRemindData] = useState(false);
const [isEnabled, setIsEnabled] = useState(Boolean);
const toggleSwitch = () => setIsEnabled(previousState => !previousState);
let response;
React.useEffect(async () => {
try {
response = await userApi.get(`${configData.SERVER_URL}/admin/learningreminder/getlearnReminderData`, {});
if (response.status !== 201) throw Error('Something went wrong');
if (response.data.status === false) throw Error(response.data.message);
console.log("Record-->", JSON.stringify(response.data));
setRemindData(response.data.user);
console.log("Fetched Data", JSON.stringify(remindData.length));
console.log("********", isEnabled);
if (remindData.length > 0) {
console.log("IN IF");
setIsEnabled(true)
} else {
setIsEnabled(false)
console.log("IN ELSE");
}
} catch (e) {
console.log(e)
}
}, [])
<Switch
trackColor={{ false: '#767577', true: '#2a346a' }}
thumbColor={isEnabled ? 'blue' : '#f4f3f4'}
onValueChange={toggleSwitch}
value={isEnabled}
onChange={SwitchChange}
/>
const SwitchChange = () => {
// setIsEnabled(true)
if (isEnabled) {
console.log("If IsEnabled-->", isEnabled)
toggleOFF();
}
else {
setModalVisible(!modalVisible)
console.log("Else IsEnabled-->", isEnabled)
}
}
router.get('/getlearnReminderData', authenticateUser, async (req, res) => {
let _id = req.user._id;
try {
let user = await learningReminderPost.find({ Student_id: _id })
return res.status(201).json({ user, message: "Data Fetched" ,status: 201})
}
catch (error) {
console.log(error);
}
})