React-навигация жестаВключено работает только если на экране есть навигатор? - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь создать модал, который скользит снизу и закрывает нижнюю часть экрана. Я хочу, чтобы пользователь мог отклонить этот модал, проведя пальцем сверху вниз.

Мне удалось заставить его работать с этой конфигурацией:

<Stack.Navigator mode="modal">
            <Stack.Screen name="Main" component={MainScreen}/>
            <Stack.Screen
                name="Modal"
                component={ModalStack}
                options={() => ({
                    gestureEnabled: true,
                    gestureDirection: "vertical",
                    gestureResponseDistance: { vertical: Dimensions.get("window").height },
                    cardStyle: {
                        backgroundColor: "transparent"
                    },
                })}
            />
</Stack.Navigator>

С модальным стеком:

<Stack.Navigator
            headerMode="none"
            screenOptions={{cardStyle: {backgroundColor: "transparent"}}}
        >
            <Stack.Screen
                name="ModalScreen"
                component={ModalScreen}
            />
</Stack.Navigator>

Моя проблема в том, что gestureEnabled не похоже, работает, если компонент Stack.Screen не является навигатором. В этой конфигурации я заменил компонент ModalStack непосредственно на ModalScreen:

<Stack.Navigator mode="modal">
            <Stack.Screen name="Main" component={MainScreen}/>
            <Stack.Screen
                name="Modal"
                component={ModalScreen} // <---------   ONLY CHANGE IS HERE
                options={() => ({
                    gestureEnabled: true,
                    gestureDirection: "vertical",
                    gestureResponseDistance: { vertical: Dimensions.get("window").height }
                    cardStyle: {
                        backgroundColor: "transparent"
                    },
                })}
            />
</Stack.Navigator>

В этом случае я больше не могу закрывать ModalScreen с помощью пролистывания.

Is gestureEnabled: true предназначен только для работы, если компонент Stack.Screen является навигатором?

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