【发布时间】:2021-12-09 06:32:51
【问题描述】:
所以除了嵌套路由之外,所有组件在新页面上都可以正常渲染。 url 也发生了变化,但组件在上一页的所有组件之后呈现在同一页面上,而不是在自己的页面上呈现。 这是代码
App.js
function App() {
return (
<PlaylistState>
<Router>
<div className="App">
<Navigation />
<main className="content-container">
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route exact path="/favourites">
<Favourites />
</Route>
<Route exact path="/playlistForm">
<PlaylistForm />
</Route>
<Route path="/playlists">
<Library />
</Route>
</Switch>
</main>
</div>
</Router>
</PlaylistState>
);
}
export default App;
Library.js
const Library = () => {
return (
<div>
<h1 className="my-2">Library</h1>
<Playlists />
</div>
);
};
export default Library;
Playlists.js
const Playlists = () => {
const PlaylistContext = useContext(playlistContext);
const { playlists } = PlaylistContext;
const { url, path } = useRouteMatch();
// console.log(url);
console.log("path", path);
return (
<section className="playlist-container">
{playlists.map((playlist) => (
<>
<Link to={`${url}/${playlist.id}`}>
<PlaylistCard key={playlist.id} cardDetails={playlist} />
</Link>
</>
))}
<Route path={`${path}/:playlistId`}>
<Playlist />
</Route>
</section>
);
};
export default Playlists;
【问题讨论】:
标签: reactjs react-hooks react-router components nested-routes