I wanna display two images and some logos, also some bottom icons but no image is on screen whatsoever, also there’s no error. I can’t see what I’m doing wrong.
All the assets are exported in a file inside constants/index.js, so I can also assure that the relative paths are correct.
The constants are separate in a constants/icons.js, contants/images.js and constants/index.js like this:
constants/icons.js
import bookmark from "../assets/icons/bookmark.png";
import home from "../assets/icons/home.png";
import plus from "../assets/icons/plus.png";
import profile from "../assets/icons/profile.png";
import leftArrow from "../assets/icons/left-arrow.png";
import menu from "../assets/icons/menu.png";
import search from "../assets/icons/search.png";
import upload from "../assets/icons/upload.png";
import rightArrow from "../assets/icons/right-arrow.png";
import logout from "../assets/icons/logout.png";
import eyeHide from "../assets/icons/eye-hide.png";
import eye from "../assets/icons/eye.png";
import play from "../assets/icons/play.png";
export default {
play,
bookmark,
home,
plus,
profile,
leftArrow,
menu,
search,
upload,
rightArrow,
logout,
eyeHide,
eye,
};
constants/images.js
import profile from "../assets/images/profile.png";
import thumbnail from "../assets/images/thumbnail.png";
import cards from "../assets/images/cards.png";
import path from "../assets/images/path.png";
import logo from "../assets/images/logo.png";
import logoSmall from "../assets/images/logo-small.png";
import empty from "../assets/images/empty.png";
export default { profile, thumbnail, cards, path, logo, logoSmall, empty };
constants/index.js
import icons from "./icons";
import images from "./images";
export { icons, images };
app/index.jsx
import { Image, ScrollView, Text, View } from "react-native";
import { SafeAreaView } from "react-native-safe-area-context";
import { images } from "../constants";
export default function App() {
return (
<SafeAreaView className="bg-primary h-full">
<ScrollView contentContainerStyle={{ height: "100%" }}>
<View className="w-full h-full px-4 flex-1 items-center justify-center">
<Image
source={images.logo}
className="w-[130px] h-[84px]"
resizeMode="contain"
/>
<Image
source={images.cards}
className="max-w-[380px] w-full h-[300px]"
resizeMode="contain"
/>
</View>
</ScrollView>
</SafeAreaView>
);
}
app/(tabs)/_layout.jsx
import { View, Text, Image } from "react-native";
import React from "react";
import { Tabs, Redirect } from "expo-router";
import { icons } from "../../constants";
const TabIcon = ({ icon, color, name, focused }) => {
return (
<View className="items-center justify-center gap-2">
<Image source={icon} resizeMode="contain" className="w-6 h-6"></Image>
<Text
className={`${focused ? "font-psemibold" : "font-pregular"} text-xs`}
style={{ color: color }}
>
{name}
</Text>
</View>
);
};
const TabsLayout = () => {
return (
<>
<Tabs
screenOptions={{
tabBarShowLabel: false,
tabBarActiveTintColor: "#FFA001",
tabBarInactiveTintColor: "#CDCDE0",
tabBarStyle: {
backgroundColor: "#161622",
borderTopWidth: 1,
borderTopColor: "#232533",
height: 84,
},
}}
>
<Tabs.Screen
name="home"
options={{
title: "Home",
headerShown: false,
tabBarIcon: ({ color, focused }) => (
<TabIcon
icon={icons.home}
color={color}
name="Home"
focused={focused}
/>
),
}}
/>
</Tabs>
</>
);
};
export default TabsLayout;
2