I have a project on React Native CLI. There is a login screen, that contains a bg image. It works on simulator as Xcode or Android Studio but on real device background image doesnt display. How can it be fixed? Image should be local, not as url
import { StyleSheet, View, TouchableOpacity, ImageBackground } from 'react-native';
import { Text } from 'react-native-paper';
import { useNavigation } from '@react-navigation/native';
import { FormProvider, useForm } from 'react-hook-form';
import { loginValidateSchema } from '@utils/validation';
import { LoginSection } from './components/LoginSection';
import { zodResolver } from '@hookform/resolvers/zod';
import { useUserManagementApi } from '@service/UserManagementApi';
import { Button } from '@components/Button';
import { theme } from '@theme/theme';
import { Loading } from '@screens/loading/Loading';
import { ScreenNames } from '@router/CustomStack';
export type AuthenticationCredentials = {
email: string;
password: string;
};
const LoginForm = () => {
const methods = useForm<AuthenticationCredentials>({
resolver: zodResolver(loginValidateSchema),
});
const navigation = useNavigation<any>();
const { loginUser } = useUserManagementApi();
const handleSubmitCredentials = methods.handleSubmit((values: AuthenticationCredentials) => {
loginUser.mutateAsync({ email: values.email, password: values.password });
});
return (
<ImageBackground
source={require('../../assets/authenticate_bg.jpg')}
style={styles.background}
resizeMode="cover">
<View style={styles.container}>
<FormProvider {...methods}>
<LoginSection />
</FormProvider>
</View>
{loginUser.isPending ? (
<Loading marginTop={24} />
) : (
<>
<View style={styles.buttonContainer}>
<Button variant="secondary" action={handleSubmitCredentials}>
Log in
</Button>
<TouchableOpacity onPress={() => navigation.navigate(ScreenNames.Registration)}>
<Text style={styles.registration}>Go to Registration</Text>
</TouchableOpacity>
</View>
</>
)}
</ImageBackground>
);
};
const styles = StyleSheet.create({
buttonContainer: {
marginTop: 24,
marginHorizontal: 50,
gap: 10,
},
registration: {
textAlign: 'center',
color: theme.criticalColor.color,
marginTop: 10,
},
container: {
marginTop: 50,
marginHorizontal: 30,
gap: 10,
},
background: {
flex: 1,
width: "100%",
height:"100%"
},
});
export { LoginForm };
I tried preload image asynchronously, declared image as variable but it didnt help