Я работаю со своим проектом Expo-React-Native, и я создал свою навигацию с помощью React Navigation
. У меня есть список магазинов и страница с подробностями о каждом из них. Вот как я это делаю:
Stores.tsx
export default function Stores({ navigation }: any) {
//...
return (
<FlatList
data={data.allStores}
renderItem={(store) => (
<Store
title={store.item.name}
onPress={() =>
navigation.navigate("StoreDetail", {
title: store.item.title,
})
}
/>
)}
keyExtractor={(store, index) => String(index)}
></FlatList>
);
}
StoreDetail.tsx
export default function StoreDetail({ route, navigation }: any) {
return (
<View style={styles.container}>
<ImageBackground
style={styles.image}
source={require("../assets/SampleStore.jpg")}
>
<TouchableOpacity onPress={navigation.goBack()}>
<Ionicons
style={styles.backIcon}
name="md-arrow-round-back"
size={30}
color={colors.iceWhite}
/>
</TouchableOpacity>
</ImageBackground>
<View style={styles.content}>
<PrimaryText textAlign={"center"} fontSize={30} margin={7}>
{route.params?.title}
</PrimaryText>
<TouchableOpacity style={styles.button}>
<PrimaryText color={colors.iceWhite} fontSize={16}>
SACAR TURNO
</PrimaryText>
</TouchableOpacity>
</View>
</View>
);
} // then the syles...
А для "обертки", в которой я управляю своей навигацией, у меня есть это:
import React from "react";
import { Ionicons } from "@expo/vector-icons";
import colors from "../../assets/constants/style-variables";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { createStackNavigator } from "@react-navigation/stack";
import { NavigationContainer } from "@react-navigation/native";
import Turnos from "../MisTurnos";
import Stores from "../Stores";
import User from "../User";
import StoreDetail from "../StoreDetail";
const Tab = createBottomTabNavigator();
const StoreNav = createStackNavigator();
function StoreStack() {
return (
<StoreNav.Navigator initialRouteName="Stores">
<StoreNav.Screen name="StoreDetail" component={StoreDetail} />
<StoreNav.Screen name="Stores" component={Stores} />
</StoreNav.Navigator>
);
}
export default function HomeNavigation() {
return (
<Tab.Navigator
tabBarOptions={{
showLabel: false,
style: { backgroundColor: colors.iceWhite },
}}
>
<Tab.Screen
name="Turnos"
component={Turnos}
options={{
tabBarIcon: ({ focused }) => (
<Ionicons
name="md-checkbox"
size={20}
color={focused ? colors.primary : colors.iconColor}
/>
),
}}
/>
<Tab.Screen
name="Stores"
component={StoreStack}
options={{
tabBarIcon: ({ focused }) => (
<Ionicons
name="md-basket"
size={20}
color={focused ? colors.primary : colors.iconColor}
/>
),
}}
/>
<Tab.Screen
name="User"
component={User}
options={{
tabBarIcon: ({ focused }) => (
<Ionicons
name="md-person"
size={20}
color={focused ? colors.primary : colors.iconColor}
/>
),
}}
/>
</Tab.Navigator>
);
}
Проблема в том, что всякий раз, когда я нажимаю на магазин, он просто ничего не делает, я проверял, был ли проблема с перекрытием элементов, но я не нашел. Что мне здесь не хватает?