Если вход выполнен успешно, я не получаю сообщения об ошибке. Моя проблема в том, что если сообщение об ошибке не получено, значение data.error.message не определено, и программа вылетает. Как я могу это решить?
if (data.error.message === 'EMAIL_NOT_FOUND'){
setError({
title: "EMAIL_NOT_FOUND",
message: "This email address is not registered.",
});
setIsLoading(false);
return;
}
if (data.error.message === 'EMAIL_NOT_FOUND' && data.error.message !== undefined){
setError({
title: "EMAIL_NOT_FOUND",
message: "This email address is not registered.",
});
setIsLoading(false);
return;
}
Я тоже пробовал это, но та же ошибка.
Если вход в систему выполнен успешно, с сервера не приходит сообщение об ошибке, и поэтому data.error.message не определено. Если есть сообщение об ошибке, это работает. Тем не менее, я хочу обработать оба случая.
Не могли бы вы попробовать это? if (data !== undefined && data.error !== undefined && data.error.message === 'EMAIL_NOT_FOUND')
Вероятно, вы получаете ошибку, потому что пытаетесь прочитать объект, который не определен.
Вы можете изменить свое условие для обработки случая, когда error
не определено:
if (data?.error?.message && data.error.message === 'EMAIL_NOT_FOUND'){
...
}
Таким образом вы убедитесь, что error
и message
существуют и не определены.
На самом деле это javascript без машинописного текста. Просто попробуйте это в консоли браузера и убедитесь, что это работает.
Извини. Ты прав. Пожалуйста, просто отредактируйте, чтобы я мог отменить свой голос.
Вы уверены, что данные, error.message не определены? Возможно, в вашем случае data.error не определен.