#javascript #react-native #async-await #use-effect #asyncstorage
#javascript #react-native #асинхронный-ожидание #использовать-эффект #asyncstorage ( асинхронное хранилище )
Вопрос:
Я пытаюсь получить свой поддельный токен (‘successful_fake_token’) с помощью AsyncStorage, который я могу получить хорошо, но после .затем блок закончил свою работу.
function loadUsers() {
setUsers({ users: [], hasLoadedUsers: false, userLoadingErrorMessage: '' });
getUsers().then( (res) =>
setUsers({
users: res.users,
hasLoadedUsers: true,
userLoadingErrorMessage: ''
})
).catch(handleUserLoadingError(res));
}
useEffect(() => {
loadUsers();
}, []);
function handleUserLoadingError(res) {
if (res.error === 401) {
props.navigation.navigate('Login');
} else {
console.log('hanlde erreur');
setUsers({
users: [],
hasLoadedUsers: false,
userLoadingErrorMessage: res.message,
});
}
}
Комментарии:
1. Не обрабатывайте ошибки, выполняя
return null
, если только вам на самом деле не нужен токен — в этом случае вам не нужно было бы вызыватьgetToken
функцию в первую очередь.2. Сообщение об ошибке ясное и правильное. В
.catch(handleUserLoadingError(res))
,res
не определено. ЧтоhandleUserLoadingError
делает и как это определяется, может быть, вы имели в видуcatch(handleUserLoadingError)
?3. Боже мой, ты прав @Bergi, проблема возникает из
.catch(handleUserLoadingError(res))
-за того, что должно бытьcatch(handleUserLoadingError)