使用嵌套导航进行深度链接(react-native)

2024-03-10

尝试按照本指南为我的项目设置深度链接:https://reactnavigation.org/docs/en/next/deep-linking.html https://reactnavigation.org/docs/en/next/deep-linking.html

然而,在尝试实施时,我总是看到主屏幕而不是帐户屏幕。

运行一个这样的例子:

adb shell am start -W -a android.intent.action.VIEW -d "hdsmobileapp://main/account/" com.digithurst.hdsapp

我有一个嵌套导航,如下所示:

import {createDrawerNavigator, createStackNavigator} from "react-navigation";
    import {NavigationOptions} from "./components/NavigationOptions";
    import {SideMenu} from "./components/SideMenu";
    import LoginScreen from "./containers/LoginScreen";
    import MainScreen from "./containers/MainScreen";
    import MyAccountScreen from "./containers/MyAccountScreen";

    import SplashScreen from "./containers/SplashScreen";
    import { createAppContainer} from "react-navigation";


    const AppContainer = createAppContainer(
        {
            Splash: {
                screen: SplashScreen,
                navigationOptions: {
                    header: null,

                },
            },
            Login: {
               screen: createStackNavigator(
                   {
                       Login: {
                           screen: LoginScreen,
                           navigationOptions: {
                               header: null,
                           },
                       },                                     
                   },
               )
            },
            Main: {
                screen: createDrawerNavigator(
                    {
                        Main: {
                            screen:  createStackNavigator(
                                {

                                    Main: {
                                        screen: MainScreen,
                                        navigationOptions: NavigationOptions.getSearchFilterHeader("title.main"),
                                    },

                                    MyAccount: { screen: MyAccountScreen, path: 'account',},


                                },
                            ),

                        },
                    }, {
                        drawerWidth: 300,
                        initialRouteName: "Main",
                        contentComponent: SideMenu,

                    },
                ),
            },
        },

    );

然后 App.tsx 中包含以下内容:

import React, {Component} from "react";
import SplashScreen from "react-native-splash-screen";
import {Provider} from "react-redux";
import RootStack from "./navigation";
import AppContainer from "./navigation";
import store from "./store/store";
import {createAppContainer} from 'react-navigation'
import { AppRegistry } from 'react-native';




class App extends Component {
    public componentDidMount() {
        SplashScreen.hide();
    }

    public render() {
        return (

            <Provider store={store}>
                <RootStack  uriPrefix={prefix}  />
            </Provider>
        );
    }
}


const prefix = 'hdsmobileapp://hdsmobileapp';

const MainApp = () => <AppContainer uriPrefix={prefix} />;
AppRegistry.registerComponent('App', () => MainApp);
export default App;

我在这里缺少什么明显的东西吗?


The main您提供的网址的一部分(hdsmobileapp://main/account/) 未在您的导航声明中指定。

您应该将其添加到uriPrefix支撑或避免它在试图到达时超过它/account地点。

adb shell am start -W -a android.intent.action.VIEW -d "hdsmobileapp://account/" com.digithurst.hdsapp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用嵌套导航进行深度链接(react-native) 的相关文章

随机推荐