首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React本机深度链接未移动到第二个深度链接

React本机深度链接未移动到第二个深度链接
EN

Stack Overflow用户
提问于 2021-11-02 09:08:40
回答 1查看 39关注 0票数 0

当使用react原生深度链接时,我很难使用第二个路径的uri。documentation https://reactnavigation.org/docs/4.x/deep-linking中有一些示例

我遇到的问题是blahh://account --android会链接到正确的屏幕,而blahh://account/keys --android不会。如果我将任何路径添加到AccountStack中的屏幕,这是相同的

我使用的是react导航版本4。

代码语言:javascript
复制
const AccountStack = createStackNavigator(
    {
        Account: {
            screen: Account,
            path: '',
            navigationOptions: {
                ...accountNavigationOptions,
                ...Account.navigationOptions,
            },
        },
        AccountLoginAndSecurity: {
            screen: AccountLoginAndSecurity,
            path: '',
            navigationOptions: () => ({
                ...defaultNavigationOptions,
                headerTransitionPreset: 'uikit',
            }),
        },
        CreateAccount: {
            screen: CreateAccount,
            path: '',
            navigationOptions: () => ({
                ...defaultNavigationOptions,
                headerTransitionPreset: 'uikit',
            }),
        },
        KeysList: {
            screen: KeysList,
            path: 'keys',
            navigationOptions: () => ({
                ...defaultNavigationOptions,
                headerTransitionPreset: 'uikit',
            }),
        },
        AccountSwitch: createAnimatedSwitchNavigator(
            {
                AccountLoading: {
                    screen: AccountLoading,
                    path: '',
                    params: {
                        theme: 'orange',
                        navigateScreen: 'CreateAccountOrLogin',
                    },
                },
                CreateAccountOrLogin: CreateAccountOrLogin,
                Continue: AccountMenu,
            },
            {
                initialRouteName: 'AccountLoading',
                transition: createSwitchTransition(),
            }
        ),
    },
    {
        defaultNavigationOptions: accountNavigationOptions,
    }
);

export const TabNavigator = createBottomTabNavigator(
    {
        Explore: {
            screen: ExploreStack,
            path: '',
        },
        Bookings: {
            screen: YourBookingsStack,
            path: '',
        },
        Account: {
            screen: AccountStack,
            path: 'account',
        },
    },
    {
        defaultNavigationOptions: ({ navigation }) => ({
            // eslint-disable-next-line react/display-name
            tabBarIcon: ({ focused }): React.ReactNode => {
                const { routeName } = navigation.state;
                let iconName;
                if (routeName === 'Explore') {
                    focused
                        ? (iconName = require('assets/icons/bottom_tab_icons/explore_tab_icon.png'))
                        : (iconName = require('assets/icons/bottom_tab_icons/explore_tab_icon_unselected.png'));
                } else if (routeName === 'Bookings') {
                    focused
                        ? (iconName = require('assets/icons/bottom_tab_icons/bookings_tab_icon.png'))
                        : (iconName = require('assets/icons/bottom_tab_icons/bookings_tab_icon_unselected.png'));
                } else if (routeName === 'Account') {
                    focused
                        ? (iconName = require('assets/icons/bottom_tab_icons/account_tab_icon.png'))
                        : (iconName = require('assets/icons/bottom_tab_icons/account_tab_icon_unselected.png'));
                }
                return <Image source={iconName} />;
            },

            tabBarOptions: {
                showLabel: false,
                style: {
                    elevation: 3,
                    borderTopColor: 'transparent',
                    backgroundColor: '#fff',
                    height: 50,
                },
            },
        }),

        navigationOptions: () => ({
            headerBackTitle: null,
            headerTitleStyle: { color: 'orange' },
        }),
    }
);
EN

回答 1

Stack Overflow用户

发布于 2021-11-03 19:19:10

在进入keys屏幕之前,我只是查看了代码库和帐户链接。

代码语言:javascript
复制
Account: {
        screen: Account,
        path: '',
        navigationOptions: {
            ...accountNavigationOptions,
            ...Account.navigationOptions,
        },
    },

因此修复方法是在account blahh中添加一个空路径,然后转到npx uri-scheme open blahh://account/keys --android

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69807800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档