#javascript #reactjs #react-router
Вопрос:
у меня есть логическое состояние и мой код зависит от этого государства одним из них, если это состояние истинного Я буду использовать history.goback()
функцию , второй после первого условия я проверю, если в состояние false, то что-то делать , но то, что происходит сейчас, если history.goback()
государство логическое стать ложно, то второе условие попадания . итак, как это исправить .
это мой код
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 amp;amp; 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
[]
);