繁体   English   中英

打开未在路由中以反应原生方式指定的DeepLink

[英]Opening DeepLinks which are not specified in Routes in react-native

如果我考虑一个例子

https://app.abc.com/login 

这会在我的应用中打开登录页面。 但如果链接是这样的

https://app.abc.com/loginUser //This link is a route in web app

这不会在App中打开登录页面,因为Path未在路径中定义

现在的要求是,每当用户点击第二个链接时,即使这样,它也应该在App中而不是在Web中打开登录组件。 即。 同一组件的多个路由,或者我可以为这些路由打开通用组件吗? 我们能在React-Native中实现这一目标吗?

这很简单,只需要探索React-Navigation的文档

import { NavigationActions } from 'react-navigation' 
    const previousGetActionForPathAndParams = MyAPP.router.getActionForPathAndParams;

    Object.assign(MyApp.router, {
      getActionForPathAndParams(path) {
        console.log("path in navigation", path)
        if (
          path === 'loginUser'
        ) {
          // returns a profile navigate action for /my/custom/path
          return NavigationActions.navigate({
            routeName: 'Login',
          });
        }
        // else {
        //   console.log("you have landed in an unknown space")
        // }
        return previousGetActionForPathAndParams(path);
      },
    });

在导航文件中插入此代码,您最好使用React-Navigation

在以前的版本中,我们可以通过在此处为特定组件提供多个路径来实现

感谢@DoğancanArabacı的有价值的评论,曾经是一个方便的解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM