reactjs - 在 React-navigation 6+ 中深度链接屏幕的多个路径

标签 reactjs react-native react-navigation react-navigation-v6

我有一些屏幕需要支持多个深度链接路径,如下所示:

export const navigationConfig = {
  prefixes: supportedDeepLinkURLs,
  config: {
    screens: {
      Root: {
        path: '',
        screens: {
          Article: {
             path: [ // This needs to be an array not a string 
                'teams/first-team/content/:id',
                'teams/handball/content/:id',
                'teams/club/content/:id',
            ],
            exact: false
          },
         // ...
        }
     }
    }
  }

react-navigation 6深度链接中是否有任何方法可以将数组或正则表达式提供作为路径

这里有一个旧答案:react-navigation deep linking with multiple paths

对于react-navigation 4或5,但我在react-navigation 6文档中找不到任何关于此的内容。

任何帮助或建议将不胜感激。

谢谢!

最佳答案

URL 路径应为字符串,而不是数组。暴力解决方案,您可以添加与 FirstTeamHandBallClub 相关的不同路线名称,如下所示:

const paths = [
  "teams/first-team/content/:id",
  "teams/handball/content/:id",
  "teams/club/content/:id",
];

function getPathName(path) {
  return path.split("/")[1];
}
function generatePaths(paths) {
  let screenPaths = {};

  paths.forEach((path) => {
    const pathName = getPathName(path);
    screenPaths[pathName] = {
      path,
    };
  });
  
  return screenPaths
}

export const navigationConfig = {
  prefixes: supportedDeepLinkURLs,
  config: {
    screens: {
      Root: {
        path: '',
        screens: {
          ...generatePaths(paths)
        },
        
     }
    }
  }}

const renderDynamicRoutes = () =>
  paths.map((path) => (
    <Stack.Screen
      key={path}
      name={getPathname(path)}
      component={ArticleScreen}
    />
  ))


<Stack.Navigator>
{renderDynamicRoutes}
  {/* other stack navigator routes*/}
</Stack.Navigator>


关于reactjs - 在 React-navigation 6+ 中深度链接屏幕的多个路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73701201/

相关文章:

reactjs - 测试库 React 在异步后不会触发点击

javascript - 如何循环遍历状态中的相似对象并将它们推送到对象中?

javascript - react native : Can't find variable: require

react-native - 在React导航v5中突出显示当前事件抽屉菜单

node.js - 创建 React 应用程序 http-proxy-middleware 不工作

android - 如何使用库提供的辅助函数?

react-native - 添加新项目时防止倒置的 Flatlist 滚动到底部

android - react native 应用程序图标问题。应用程序菜单中的应用程序图标未更改

javascript - react-navigation 如何将 tabBarNavigation 放置在图像背景之上

javascript - 如何在模糊时重置堆栈导航器? ( react native , react 导航)