【发布时间】:2020-06-17 20:58:39
【问题描述】:
我正在尝试使用从 json 中提取的数据动态创建一组菜单项。我目前正在尝试通过使用道具映射值来做到这一点,但我在某处失败了。
这是我用来尝试执行此操作的代码:
Const Generate = () => {
{data.items.map(({id, url, title}) => (
<MenuItem key={id}>
<Link to={url}> {title} </Link>
</MenuItem>
))
console.log('lol')}
}
这是试图利用它的组件。注释掉的是它在硬编码时看起来和工作得很好。
const Navigation = ({}) => (
<React.Fragment>
<Layout>
<Sider
breakpoint="xs"
collapsedWidth="0"
onBreakpoint={broken => {
}}
onCollapse={(collapsed, type) => {
}}
>
<div className="logo">
<h1 style={{ color: 'white', paddingLeft: 20, paddingTop: 26}}>
{Generate}
</h1>
</div>
<Menu theme="dark" mode="inline" defaultSelectedKeys={['1']}>
{Generate()}
{/* <Menu.Item key="1">
<Link to="/" > Hjem </Link>
</Menu.Item>
<Menu.Item key="2">
<Link to="/skjema"> Mine Skjema </Link>
</Menu.Item>
<Menu.Item key="3">
<Link to="/pasient"> Mine Pasienter </Link>
</Menu.Item>
<Menu.Item key="4">
Søk
</Menu.Item>
<Menu.Item key="5">
Filtrer
</Menu.Item> */}
</Menu>
</Sider>
<Layout>
<Header className="site-layout-sub-header-background" style={{ padding: 0 }} />
<Content style={{ margin: '24px 16px 0' }}>
<div className="content">
<Switch>
<Route exact path={"/"} component={Dashboard} />
<Route exact path="/Skjema" component={MineSkjema} />
<Route exact path="/Pasient" component={MinePasienter} />
</Switch>
</div>
</Content>
<Footer />
</Layout>
</Layout>
</React.Fragment>
)
export default withRouter(Navigation);
供参考,这里是json结构:
const data =
{
"items": [
{
"id": 1,
"url": "/",
"title": "Hjem"
},
{
"id": 2,
"url": "/Skjema",
"title": "Mine Skjema"
},
{
"id": 3,
"url": "/Pasient",
"title": "Hjem"
},
{
"id": 4,
"url": "/Search",
"title": "Søk"
}
]
}
我在哪里犯错了?
【问题讨论】:
-
你看到你的“lol”控制台打印了吗?我建议尝试确保
Generate()可以访问您的数据。这可以通过从生成中将数据打印到控制台来完成。 -
它在调用 Generate() 时运行 lol 消息,但我没有得到新元素。
-
请注意
Const是一个语法错误。应该是const。请确保您在此处发布的内容与您实际使用的内容完全相同。
标签: javascript arrays json reactjs