Невозможно установить глубокую связь с реакцией-навигацией V3 - PullRequest
0 голосов
/ 23 ноября 2018

Я пытался реализовать Deep Linking , следуя официальной документации в качестве ссылки.

Я завершил настройку IOS на XCode.

Но когда я вставляю URL mychat://chat, он открывает мой экран A screen, а не Second.Я протестировал initialRouteName: 'Second', он работает.

Так что я не могу понять, какой шаг мне не хватает.

Вот мой Router.js:

import { createMaterialTopTabNavigator, createStackNavigator, 
  createDrawerNavigator, createTabNavigator,
  createBottomTabNavigator, createAppContainer
} from 'react-navigation';
import React, { Component } from 'react';
import { Platform } from 'react-native';
import A from './components/A';
import B from './components/B';
import Second from './components/Second';
import DrawerPanel from './components/DrawerPanel';

const Stack = createStackNavigator({
  A: {
    screen: createBottomTabNavigator({
      'A Screen': A,
      'B Screen': B
    },
    {
      swipeEnabled: false,
      lazyLoad: false,
      tabBarOptions: {
        activeTintColor: 'tomato',
        inactiveTintColor: 'gray',
          tabStyle: {
            width: 125,
            height: 50
        },
        scrollEnabled: true 
      }  
    })
  },
  Second: {
    screen: Second,
    // path: 'chat/:user'
    path: 'chat'
  }
},
  {
    initialRouteName: 'A',
    headerMode: 'screen'
  }
);
// combine DrawerPanel
const Router = createDrawerNavigator({
  FirstScreen: {
    screen: Stack
  }
},
{
  contentComponent: DrawerPanel,
  drawerWidth: 200
});

// about Deep linking
const prefix = Platform.OS == 'android' ? 'mychat://mychat/' : 'mychat://';
const SimpleApp = createAppContainer(Router);
const MainApp = () => <SimpleApp uriPrefix={prefix} />;

export default MainApp;

Мои реакции Родные зависимости:

  "dependencies": {
    "react": "16.3.1",
    "react-native": "0.55.4",
    "react-native-gesture-handler": "^1.0.9",
    "react-navigation": "^3.0.0"
  },

Любая помощь будет оценена.Заранее спасибо.

1 Ответ

0 голосов
/ 05 июля 2019

Вы должны установить путь к '' в родительском элементе вашего View. В этом случае вы должны переписать свой маршрутизатор следующим образом:

const Router = createDrawerNavigator({
  FirstScreen: {
    screen: Stack,
    path: ''
  }
},
{
  contentComponent: DrawerPanel,
  drawerWidth: 200
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...