Как выборочно показывать модалы в React Navigation? - PullRequest
0 голосов
/ 29 июня 2018

Я создаю приложение, которое очень похоже на приложение Календарь на iOS. У меня есть приложение на основе вкладок, которое иногда должно вызывать модальные и другие временные карты, в зависимости от показанного экрана. В приложении Календарь Apple, если вы нажмете на событие, вы получите нормальный переход (слайд сбоку или «карта»), но если вы нажмете кнопку «+», вы получите модальное (снизу вверх) переход. Я хотел бы добиться чего-то подобного. Теперь проблема в том, что я могу получить только все модалы или все переходы карт.

const CalendarTab = createStackNavigator(
    {
        CalendarView: {screen: CalendarView},
        ViewEvent: {screen: ViewEvent}, // This should be a "card" transition
        AddEvent: {screen: AddEvent}, // This should be a "modal" transition
    },
    {
        mode: "modal", // This shouldn't be hard-coded
        initialRouteName: "CalendarView",
    }
);

const TabStack = createBottomTabNavigator({
    Calendar: CalendarTab,
    Settings: SettingsTab,
},
{
    initialRouteName: "Calendar",
    navigationOptions: ({ navigation }) => ({
        tabBarVisible: navigation.state.index === 0, // This should only apply to modals
    });
}

export default class App extends Component {
    render() {
        return <TabStack />;
    }
}

Редактировать: Я нашел частичное решение здесь: https://github.com/react-navigation/react-navigation/issues/707#issuecomment-299859578,, но это приводит к тому, что заголовки портятся и, как правило, является хрупким решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...