useState can't set Switch value to enable even if data is fetched

Viewed 23

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);
    }
})
0 Answers
Related