Я пытаюсь обеспечить глубокое связывание для моего приложения с помощью React Navigation. Пути к стеку навигации верхнего уровня работают нормально, но дочерние пути к ним не подходят.
Мое приложение использует стек React Native, redux, redux navigation и Expo. Я ознакомился с документами Expo и React Navigation о том, как реализовать связывание в приложении. Я назначил правильный префикс и все. Я тестирую приложение, используя кнопки, которые перенаправляют на нужные пути, а также запускаю adb shell am start -W -a android.intent.action.VIEW -d "exp://127.0.0.1:19000/--/main"
. Если я пытаюсь добраться до /auth
или /main
, оно работает как положено. Я вижу, как приложение переключает экраны соответственно.
adb shell am start -W -a android.intent.action.VIEW -d "exp://127.0.0.1:19000/--/main
adb shell am start -W -a android.intent.action.VIEW -d "exp://127.0.0.1:19000/--/auth
Но когда я пытаюсь перейти на вложенный путь, как /main/events
, ничего не происходит.
adb shell am start -W -a android.intent.action.VIEW -d "exp://127.0.0.1:19000/--/main/events
Это упрощенная версия моих маршрутов, но на самом деле я использую этот точный код для запуска своих тестов.
AppNavigator = createAppContainer(createSwitchNavigator({
// You could add another route here for authentication.
// Read more at https://reactnavigation.org/docs/en/auth-flow.html
AuthLoading: {
screen: AuthLoadingNavigator,
},
Main: {
path: 'main',
screen: createBottomTabNavigator({
HomeStack: createStackNavigator({
Home: {
path: 'home',
screen: HomeScreen,
navigationOptions: () => ({
title: 'Home',
headerMode: 'none',
headerBackTitle: null,
headerBackTitleVisible: false,
header: null,
}),
},
EventsArchive: {
path: 'events',
screen: EventsArchiveScreen,
navigationOptions: () => ({
headerMode: 'screen',
headerBackTitle: null,
}),
},
})
})
},
Auth: {
path: 'auth',
screen: AuthNavigator,
},
}))