【发布时间】:2022-01-03 19:19:56
【问题描述】:
我有一个 pageNames 列表和一个 pageUrls 列表。我想创建一个路由器,为列表中的每个页面生成一个反应组件,并使用带有路由器链接的导航栏。我认为问题出在 forEach 函数上,但我不确定。
谁能告诉我我做错了什么?
虽然我觉得它没有帮助,here is a similar question。
import React, { useState } from "react";
import {
BrowserRouter as Router,
Switch,
Route,
Link
} from "react-router-dom";
function App() {
const routes = [
{
name: 'home',
path: '/'
},
{
name: 'blog',
path: '/blog'
}
]
// translate (map) your array of objects into jsx
const routeComponents = routes.map(({name, path}) => ((
<Route key={name} path={path}>
<h1>{name}</h1>
</Route>
)))
return (
<div className="App" >
<Router>
<Navbar routes = {routes} />
<Switch>
{routeComponents}
</Switch>
</Router>
</div>
);
}
export default App;
function Navbar(props){
const links = props.routes.map(({name, path}) => (
<Link key={name} to={path}>{name}</Link>
))
return(
<div style={{justifyContent: "space-around", margin:"auto", display:"flex",justifyContent:"space-around",backgroundColor:"red"}}>
{links}
</div>
)
}
【问题讨论】:
标签: reactjs react-router react-router-dom