У меня проблемы с настройкой навигации по вкладкам.
Это мой код:
App.tsx:
const App: React.FC = () =>
<IonApp>
<IonReactRouter>
<IonRouterOutlet id="main">
<Route exact path="/" render={() => <Redirect to="/home"/>}/>
<Route path="/home" render={(props) => <Home {...props}/>} exact={true}/>
</IonRouterOutlet>
</IonReactRouter>
</IonApp>
)
Home.tsx :
const Home: React.FC<RouteComponentProps> = (props: RouteComponentProps) => (
<IonPage>
<IonTabs>
<IonRouterOutlet id='tabs'>
<Route path='/:tab(myDecks)' render={(props) => <MyDecks {...props} />} exact/>
<Route path='/:tab(explore)' render={(props) => <Explore {...props} />} exact/>
<Redirect from='/home' to='/myDecks'/>
</IonRouterOutlet>
<IonTabBar slot='bottom'>
<IonTabButton tab='myDecks' href='/myDecks'>
<IonLabel>My Decks</IonLabel>
</IonTabButton>
<IonTabButton tab='explore' href='/explore'>
<IonLabel>Explore</IonLabel>
</IonTabButton>
</IonTabBar>
</IonTabs>
</IonPage>
);
MyDecks.tsx:
const MyDecks: React.FunctionComponent<RouteComponentProps> = (props: RouteComponentProps) => {
return <>
<IonHeader>
<IonToolbar>
<IonTitle>My Decks</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent className='ion-padding'>
My Decks
</IonContent>
</>
};
Текущее поведение:
- Доступ пользователя /
- Пользователь перенаправлен на / home
- Еще одно перенаправление на / myDeck, выбрана вкладка «Моя колода» и правильный URL-адрес.
- Если пользователь нажимает на вкладку «Обзор», URL-адрес изменяется, вкладка «Моя колода» Отмена выбора и вкладка «Исследовать», однако, содержимое страницы не меняется.
Если я изменю порядок маршрутов внутри <IonRouterOutlet>
, то вкладка «Мои колоды» изначально выбран, и когда пользователь впервые нажимает на вкладку «Исследовать», он отображается нормально, но никогда не возвращается на вкладку «Мои колоды».
Я также заметил, что при обновлении в / myDeck или / explore нет контент отображается вообще.