Ale*_*ung 4 reactjs react-router-dom
我有两个导航菜单,菜单栏上的艺术家和专辑。我正在使用react_rotuer_dom v6
这是嵌套的导航结构。
到目前为止,我的嵌套路线正在按预期工作。现在我想从曲目(4)返回到专辑(3)。有一个链接相册可导航回相册。那么我如何从“跟踪”页面导航此路径 /artists/artist/xxx/album/yyy 。我可以给出绝对路径 /artists/artist/xxx/album/yyy,它正在工作。
但是如果我单击“相册”路线怎么办?我对专辑、专辑和曲目使用相同的页面。请看下面我的死记硬背。我是否使用正确的嵌套路线方法?
小路
const paths = {
home: "/",
artists: "/artists",
getArtists: () => `/artists`,
artist: "artist/:artistId",
getArtist : (artistId) => `artist/${artistId}`,
albums: "/albums",
getAlbums: () => `/albums`,
album: "album/:albumId",
getAlbum: (albumId) => `album/${albumId}`,
track: "track/:trackId",
getTrack: (trackId) => `track/${trackId}`,
};
export default paths;
Run Code Online (Sandbox Code Playgroud)
路线
<Routes>
<Route path={paths.home} element={<HomePage />}></Route>
<Route path={paths.artists}>
<Route index element={<ArtistsPage />} />
<Route path={paths.artist}>
<Route index element={<AlbumsPage />} />
<Route path={paths.album}>
<Route index element={<AlbumPage />} />
<Route path={paths.track} element={<TrackPage />}></Route>
</Route>
</Route>
</Route>
<Route path={paths.albums}>
<Route index element={<AlbumsPage />} />
<Route path={paths.album}>
<Route index element={<AlbumPage />} />
<Route path={paths.track} element={<TrackPage />}></Route>
</Route>
</Route>
</Routes>
Run Code Online (Sandbox Code Playgroud)
Dre*_*ese 10
如果我正确理解您的问题,您会问如何动态导航回父路线。
就像路由使用相对路径构建路由树结构一样,链接也可以使用相对路径进行链接。
相对
<Link to>值(不以 开头/)相对于父路由进行解析,这意味着它构建在与呈现该 的路由匹配的 URL 路径之上<Link>。它可能包含..链接到层次结构中更上层的路由。在这些情况下,..其工作方式与命令行函数完全相同cd;每个..都会删除父路径的一段。
要向后导航两个路径段以从特定曲目返回到特定专辑,请使用../..。
例子:
<Link to="../..">Back to parent</Link>
Run Code Online (Sandbox Code Playgroud)
如果路径是"/artists/artist/xxx/album/yyy/track/zzz",则单击链接将“向上/向后”导航两个路径段到"/artists/artist/xxx/album/yyy"。类似地,如果路径是"/artists/artist/xxx/album/yyy",则单击相同的链接将再次“向上/向后”导航两个路径段到"/artists/artist/xxx"。
| 归档时间: |
|
| 查看次数: |
5663 次 |
| 最近记录: |