我无法让标签导航正常工作。
到目前为止,这是我的代码:
应用程序.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>
)
主页.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>
);
我的甲板.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 很好。
- 如果用户单击“Explore”选项卡,URL 会发生变化,“My Deck”选项卡会被取消选择,“Explore”选项卡会被选中,但是页面内容不会改变。
如果我更改内部路线的顺序<IonRouterOutlet>
,则最初选择了“我的甲板”选项卡,当用户第一次单击“探索”选项卡时,它呈现正常,但永远不会回到“我的甲板”选项卡。
我还注意到,在 /myDeck 或 /explore 刷新时,根本不会呈现任何内容。