Я делаю первый шаг в создании своего приложения, и я хочу реализовать спиннер загрузки на экране при получении данных. эта проблема возникает на экранах регистрации / входа, когда пользователь вводит свои данные для входа в приложение. когда он нажимает на кнопку входа, я хочу запустить загрузочный счетчик до конца таймера. пожалуйста, проверьте код ниже, когда загрузка появляется на экране примерно на секунду, а затем переходите к следующему экрану, хотя я установил таймер на 30000 мс:
import { Text, View, ActivityIndicator} from 'react-native';
const LoginScreen = ({ navigation }) => {
const [isLoading, setIsLoading] = useState(false);
const _onLoginPressed = () => {
setIsLoading(true);
const user = {
Email: email.value,
PasswordTourist: password.value
};
fetch(apiUrl, {
method: 'POST',
body: JSON.stringify(user),
headers: new Headers({
'Content-type': 'application/json; charset=UTF-8'
})
})
.then(res => {
return res.json()
})
.then(
(result) => {
closeActivityIndicator();
const profile = result;
if(profile.Email === null || profile.PasswordTourist === null){
...code....
setIsLoading(false)
}
else{
navigation.navigate('Dashboard', { profile: profile })
}
},
(error) => {
console.warn("err post=", error);
});
}
};
const closeActivityIndicator = async => setTimeout(() => {setIsLoading(false)}, 30000)
return (
<Background>
code......
{isLoading && <ActivityIndicator size="large" color="#fff" />}
code....
</Background>
)