我有一个列表页面,其中显示了我的games.json文件中的所有游戏。
下面是GameListPage.tsx中的内容:
<IonList>
{gamesJson.map((game) => (
<IonItem
routerLink={
game.software_used ?
/games/id/${game.steam_appid}` : '/games'
}
key={game.steam_appid}
>
<IonThumbnail slot="start">
<img alt={game.name} src={game.header_image} />
</IonThumbnail>
<IonLabel>
<h2>{game.name}</h2>
<p>{game.developer}</p>
</IonLabel>
</IonItem>
))}
</IonList>
当您点击该项目时,您将被重定向到游戏详细信息页面。但是,只有在刷新页面后才会重定向。
下面是我的IonReactRouter
在App.tsx中的样子:
<IonReactRouter>
<IonTabs>
<IonRouterOutlet>
<Route exact path="/games">
<GameListPage />
</Route>
<Route path="/games/id/:id">
<GameDetailsPage />
</Route>
<Route exact path="/software">
<SoftwareListPage />
</Route>
<Route exact path="/">
<Redirect to="/games" />
</Route>
</IonRouterOutlet>
<IonTabBar slot="bottom">
<IonTabButton tab="games" href="/games">
<IonIcon aria-hidden="true" icon={triangle} />
<IonLabel>Games</IonLabel>
</IonTabButton>
<IonTabButton tab="software" href="/software">
<IonIcon aria-hidden="true" icon={ellipse} />
<IonLabel>Software</IonLabel>
</IonTabButton>
</IonTabBar>
</IonTabs>
</IonReactRouter>
我如何解决这个问题,以便在单击列表中的项目后立即加载页面?
2条答案
按热度按时间lb3vh1jj1#
1.我认为你需要使用
react-router-dom
npm library1.然后你需要使用
<Link>
组件和(to)属性<Link to={_link distination_}>{children}</Link>
例如,它将是这样的(确实在你设置好路由器之后)
这样,您将使用react路由,页面将不会重新呈现。
esbemjvw2#
值得一提的是,我相信我曾经通过将路由呈现到从
react-router-dom
导出的Switch
组件中来解决过类似的问题。IonContent
组件在您的情况下可能需要,也可能不需要,但在这里将其作为示例: