将本地导航深层链接反应到特定选项卡

时间:2018-02-10 03:31:38

标签: javascript android ios react-native react-native-navigation

这是我在这里的第一个问题,也许我错过了一些简单但我无法在任何地方找到答案。

我的项目使用redux并且有几个" root"使用tabBasedApps和singleScreenApps进行更改。当使用抽屉深度链接到特定选项卡时,如果您位于当前tabBasedApp根目录中,它将使用我正在使用的内容正确转到右侧选项卡(如下所示)。但是如果你在应用程序的不同根目录(标签或单个应用程序)并且必须更改根,然后尝试链接到正确的选项卡 - 它不起作用。它似乎跳过任何导航器方法,只打印控制台日志。所以试着去找朋友"来自不同的根只是停在" profile"。我猜这是根本变化的问题,但我不知道。

以下是深层链接的事件监听器的一部分。 "为approot"和"导航器"不是......这个..."因为我将nav事件传递给一个单独的处理程序以减少代码重复 - 它适用于我测试过的所有其他内容,而不是这个(我假设不是处理程序错误,但我可能错了)。

我在iOS上收到警告:可能未处理的承诺拒绝(id:0) 错误:找不到UITabBarController 在Android上没什么,它只是不起作用。



    if(event.type === 'DeepLink') {
        console.log('deeplink from nav');
        const parts = event.link.split('/');

        switch(parts[0]) {
            case 'profile':
                appRoot('profile');

                if(parts[1] === 'profile') {
                    navigator.toggleDrawer({
                        side: 'left',
                        animated: true,
                    });
                    navigator.switchToTab({
                        tabIndex: 0
                    });
                }

                if(parts[1] === 'friends'){
                    navigator.toggleDrawer({
                        side: 'left',
                        animated: true,
                    });
                    navigator.switchToTab({
                        tabIndex: 1,
                    });
                }
                break;




重现步骤: 使用redux示例构建项目以便能够在根之间切换。 带有按钮的抽屉可以转到其中一个根tabBasedApps中的特定选项卡 处理抽屉中的深层链接

环境 React Native Navigation版本:^ 1.1.352 React Native版本:0.51.0 平台(iOS,Android或两者兼而有之?):两者兼而有之 设备信息(模拟器/设备?操作系统版本?调试/发布?):两者上的模拟器。 iphone 6和Pixel 2

感谢您的帮助!

0 个答案:

没有答案