Tengo un estado booleano y mi código depende de ese estado. Uno de ellos, si este estado es verdadero, usaré la función history.goback() , el segundo viene después de la primera condición. Verifico si el estado es falso y luego hago algo. pero lo que sucede ahora si history.goback() , el estado booleano se vuelve falso y luego se cumple la segunda condición. entonces como solucionarlo.
este es mi codigo
const [isFormSubmitted, setIsFormSubmitted] = useState<boolean>(false); useEffect(() => { if (submitForm.status === RequestStatus.resolved) { setFormLoading(false); notification.success({ message: t('messages.success'), description: t('messages.success.requestCreated'), }); setIsFormSubmitted(true); } else if (submitForm.status === RequestStatus.rejected) { setFormLoading(false); notification.error({ message: t('leaves.newRequest.message.leaveRequestError'), description: submitForm.error?.message?.includes('Leave request already exists') ? t('leaves.newRequest.error.alreadyExists') : submitForm.error?.message, }); } }, [submitForm.status, t, submitForm.error?.message]); useEffect(() => { if (isFormSubmitted) { history.goBack(); } }, [history, isFormSubmitted]); const deleteProcessInstance = useCallback(async () => { if (isFormSubmitted === false && processInstanceIdRef.current) { try { ....... })); } catch { notification.error({ message: t('messages.error.wentWrong'), description: t('messages.error.tryAgainLater'), }); } } }, [leaveRequestPDK, isFormSubmitted, dispatch, t]); //this if the user leave the page then this useEffect hit useEffect( () => () => { deleteProcessInstance(); }, // eslint-disable-next-line react-hooks/exhaustive-deps [] );