Мне нужно открыть и закрыть модальный режим из «обычного» / навигатора потока карт. Я разделил вкладки, вышел из системы (поток аутентификации) и поток основного экрана в отдельных навигаторах. Также пытался отделить модальные навигаторы в их стеке над остальными.
Это довольно простые требования к потоку приложений, удивило, что в документах нет примеров
const AuthScreen = createStackNavigator(
{
Landing: { screen: Landing },
Login: { screen: Login },
Signup: { screen: Signup },
Terms: { screen: Terms }
},
{
mode: "modal"
}
);
const TabNavigator = createBottomTabNavigator(
{
Home: { screen: Home },
Suppliers: { screen: Suppliers },
Shortlist: { screen: Shortlist },
"To-Do": { screen: ToDo },
Inspiration: { screen: Inspiration }
},
{
navigationOptions: ({ navigation }) => ({
tabBarIcon: ({ focused, tintColor }) => {
const { routeName } = navigation.state;
if (routeName == "Home") {
return <Image source={require("../assets/icons/home.png")} />;
} else if (routeName == "Suppliers") {
return <Image source={require("../assets/icons/suppliers.png")} />;
} else if (routeName == "Shortlist") {
return <Image source={require("../assets/icons/shortlist.png")} />;
} else if (routeName == "To-Do") {
return <Image source={require("../assets/icons/todo.png")} />;
} else if (routeName == "Inspiration") {
return <Image source={require("../assets/icons/inspiration.png")} />;
}
}
}),
tabBarOptions: {
activeTintColor: "#F19B75",
inactiveTintColor: "#4A4A4A",
style: {
backgroundColor: "white",
elevation: 0,
borderTopWidth: 0
},
labelStyle: {
fontSize: 10,
fontFamily: "Lato-Light"
}
}
}
);
const ModalsStack = createStackNavigator(
{
FilterSearch: {
screen: FilterSearch
},
LocationSearch: {
screen: LocationSearch
}
},
{
mode: "modal",
navigationOptions: {
headerStyle: { backgroundColor: "#fff", elevation: 0, borderBottomWidth: 0 },
headerTitleStyle: {
fontWeight: "normal",
fontFamily: "Lora",
fontSize: 18
}
}
}
);
const HomeStack = createStackNavigator(
{
Tabs: TabNavigator,
CategoryItem: {
screen: CategoryItem
},
SupplierProfile: {
screen: SupplierProfile
}
},
{
navigationOptions: {
headerStyle: {
backgroundColor: "white",
borderBottomWidth: 0,
elevation: 0
}
},
cardStyle: {
backgroundColor: "white"
},
headerTransitionPreset: "uikit"
}
);
const AppNavigator = createSwitchNavigator({
Auth: AuthScreen,
Home: HomeStack
});
Итак, я хочу иметь возможность открыть FilterSearch с экрана CategoryItem.