gpt4 book ai didi

javascript - 如何动态地为链接创建 ReactJs Router 并为每个链接渲染一个页面?

转载 作者:行者123 更新时间:2023-11-28 03:30:30 25 4
gpt4 key购买 nike

我有一个对象数组 ( titleUrl ),其中包含来自 API 的标题和网址。我使用了一个名为 MenuLink 的自定义组件在侧边栏上创建链接,并使用 Object.keys(titleUrl).map 填充链接方法来自 titleUrl大批。

我在这里想要实现的是,当我单击每个菜单项时,它应该重定向到使用pagerender创建的页面。组件,给出为 to={{ pathname: "/pagerender"}在示例中

import React from 'react';
import { Link } from "react-router-dom";
import { MenuLink } from "../components/MenuLink";

class CreateLinks extends React.Component{
render(){
var titleUrl= [
{"title1":"url1"},
{"title2":"url2"},
{"title3":"url3"},
...
...
];
return(
<React.Fragment>
{
Object.keys(titleUrl).map((item, i) => (
<MenuLink key={item} element={Link} to={{ pathname: "/pagerender"} >{ titleUrl[item].title }</MenuLink>
))
}
</React.Fragment>
)
}
}

export default CreateLinks;

到目前为止的部分解决方案

我能够动态创建链接。

需要实现

为这些链接动态创建路由,当我们单击这些链接时,相同标题的 url(来自对象数组)应作为参数传递给 pagerender并使用这个参数 pagerender渲染页面

最佳答案

您可以拥有一组配置,然后映射它们:

const links = [
{ label: Link1, value: "/link1" },
{ label: Link2, value: "/link2" }
]

const routes = [
{
path: "/link1",
component: Link1
},
{
path: "/link2",
component: Link2
}
]

// In render

<Container>
<Nav>
{links.map(link => {
return (
<MenuLink
key={link.url}
element={Link}
to={{ pathname: link.url }}
>
{link.label}>
</MenuLink>
);
})}
</Nav>
{routes.map((route) => {
return (
<Route
key={route.path}
path={route.path}
exact={route.exact}
component={route.component}
/>
);
})}
</Container>

关于javascript - 如何动态地为链接创建 ReactJs Router 并为每个链接渲染一个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58216350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com