Заголовок заголовка и кнопка возврата в React Native - PullRequest
0 голосов
/ 04 августа 2020

У меня есть вложенная навигация, которая, похоже, не позволяет мне управлять параметрами заголовка, заголовка и возврата на каждой странице. Я использую response-navigation 4.x.

У меня есть следующие элементы в AppNavigator, сначала ящик:

const DashboardDrawerAgent = createDrawerNavigator(
    {
        DashboardScreenAgent: {
            screen: DashboardScreenAgent,
        },
        ContactsScreen: {
            screen: ContactsScreen,
        },
        ContactGlobalFormScreen: {
            screen: ContactGlobalFormScreen,
        },
})

Затем у меня есть стек, смешивающий один экран и ящик:

const InvestorStack = createStackNavigator({
    SelectProfileScreen: {
        screen: SelectProfileScreen,
    },
    DashboardDrawerInvestor: {
        screen: DashboardDrawerInvestor,
    }
}, {
    initialRouteName: 'DashboardDrawerInvestor',
})

Затем я использую SwitchNavigator:

const AppNavigator = createSwitchNavigator({
        GuestStack: {
            screen: GuestStack
        },
        WelcomeStack: {
            screen: WelcomeStack
        },
        InvestorStack: {
            screen: InvestorStack,
        }
    }, {
        initialRouteName: 'GuestStack',
        headerMode: 'none'
    });

export default createAppContainer(AppNavigator);

Drawer требует, чтобы компонент отображал пункты меню, в каждом пункте меню метод navigateToScreen используется для открытия следующего экрана:

1013 * 1014 1015 *

Я пробовал "NavigationOptions" на каждом экране, в каждом стеке тоже, но id не работал, есть идеи?

Также я пробовал напрямую вызвать определенный экран c (который принадлежит ящик) прямо с кнопки, на всякий случай, если "navigateToScreen" влияет, но тоже не повезло.

1 Ответ

0 голосов
/ 05 августа 2020

Решение заключалось в перемещении экрана списка контактов и формы контакта в отдельный стек: ContactStack:

const ContactStack = createStackNavigator({
    ContactsScreen: {
        screen: ContactsScreen,
    },
    ContactGlobalFormScreen: {
        screen: ContactGlobalFormScreen
    }
}, {
    initialRouteName: 'ContactsScreen',
});

Затем используйте его в ящике и на левой боковой панели:

const DashboardDrawerInvestor = createDrawerNavigator(
    {
        ...
        ContactStack: {
            screen: ContactStack,
        },
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...