Мы пытаемся добавить глубокие ссылки в наше собственное приложение Expo реагировать, используя Expo Linking , который открывает определенный путь в приложении, используя что-то вроде этого: myapp://home/items/order-details
.Однако, когда мы пытаемся использовать этот URL-адрес Deeplink, мы переходим только к домашнему экрану.
Но, когда мы используем этот URL: myapp://profile
, он действительно открывает экран профиля вместо домашнего экрана.Кажется, он работает для маршрутов верхнего уровня, но не для вложенных.Есть ли способ заставить URL-адрес диплинка перейти непосредственно к экрану сведений о заказе с помощью нашей навигации?
Наш файл App.js выглядит следующим образом:
import {createRootNavigator} from './router';
const RootNav = createRootNavigator();
const prefix = Expo.Linking.makeUrl('/');
export default class App extends React.Component {
render() {
return (
<Root>
<RootNav uriPrefix={prefix}/>
</Root>
)
}
Это наш маршрутизатор.JS
export const MenuNav = createStackNavigator ({
Menu: {screen: Menu, path: 'menu'},
OrderDetails: {screen: OrderDetails, path: 'order-details'}
}
);
export const UserCreate = createStackNavigator ({
Profile: {screen: Profile}
});
export const Tabs = createBottomTabNavigator({
'Home': {
screen: Home,
path: 'home-tab'
},
'Items': {
screen: MenuNav,
path: 'items'
}
},
{tabBarComponent: (props) => {
return (
<TabBar
{...props}
/>
);
},
tabBarPosition: 'bottom',
},
);
export const createRootNavigator = () => {
return createDrawerNavigator ({
Home: {
screen: Tabs,
path: 'home'
},
Profiles: {
screen: UserCreate,
path: 'profile'
},
});