【问题标题】:Deep Linking In Nested Navigation in React Navigation 5React Navigation 5 中嵌套导航中的深度链接
【发布时间】:2021-11-07 02:39:10
【问题描述】:

如何在 React Navigation 的嵌套导航器中实现深度链接。这里我有一个嵌套的堆栈导航器:

function AuthStack() {
  return (
    <Stack.Navigator>
        <Stack.Screen component={Login} name="Login" />  // deep link this screen
        <Stack.Screen component={ResetPassword} name="ResetPassword" />
    </Stack.Navigator>
  );
}

它嵌套在另一个主堆栈导航器中:

const linking = {
  prefixes: ["wagal://"],
  config: {
    screens: {
      AuthStack: "login",  // this doesn't reference `Login` screen on deep linking
    },
  },
};

function homeStack() {
  return (
    <NavigationContainer linking={linking}>
      <Stack.Navigator>
        <Stack.Screen component={AuthStack} name="AuthStack" />  // here
        // ...
      </Stack.Navigator>
    </NavigationContainer>
  );
}

我尝试通过以下方式将“wagal://login/”深层链接到Login 屏幕:

screens: {
  AuthStack: "login",
},

但是没用,我也试过了:

screens: {
  Login: "login",
},

他们不工作,我在文档中也找不到任何东西。我该如何解决这个问题?谢谢。

【问题讨论】:

    标签: react-native deep-linking react-navigation-v5 react-navigation-v6


    【解决方案1】:

    尝试将其作为嵌套导航器处理。

    AuthStack 是父名称。
    Login 是路由名称。
    login 是 url 路径。

    const config = {
      screens: {
        AuthStack: {
          screens: {
            Login: 'login',
          },
        }
      }
    };
    

    【讨论】:

    • 太好了,非常感谢。我认为不支持嵌套深层链接。
    猜你喜欢
    • 2019-02-17
    • 2018-10-18
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 2020-09-26
    相关资源
    最近更新 更多