【发布时间】:2020-06-02 04:18:48
【问题描述】:
我想构建一个类似于此图像中的侧边栏组件: 我不想通过道具将子组件作为带有文本值的对象传递,而是为列表中每个元素中的每个键值对创建一个单独的组件。例如:如果列表有 3 个元素,则列表中的每个元素应该有 3 个组件。
到目前为止,这是我的代码:
sidebarcomponents.js:
import React from 'react'
function SidebarComponents({ name, title, selected, onSelect }) {
const style = {
cursor: 'pointer'
}
return (
<div
name={name}
title={title}
style={style}
onClick={() => {
if (onSelect) onSelect(name)
}}
>
</div>
)
}
export default SidebarComponents
sidebar.js:
import React, { useEffect, useState } from 'react'
import SidebarComponents from '../../components/Sidebar1/Sidebar'
function Sidebar({ onChange }) {
const [selectedComponent, setSelectedComponent] = useState({
componentsName: [
{ name: 'Overview', title: 'Overview' },
{ name: 'SPO2', title: 'SPO2' }
]
})
return (
<div>
{selectedComponent.componentsName.map(componentsName => {
return (
<SidebarComponents
name={componentsName.name}
title={componentsName.title}
/>
)
})}
</div>
)
}
export default Sidebar
如何更改我的代码以映射子组件列表而不是代表它们的对象列表?
我希望我的问题很清楚。
【问题讨论】:
-
定义你的问题。
-
@BhojendraRauniyar 我的问题是我做不到代码是错误的,它没有给我想要的东西,我有一个包含名称和标题的列表,我想创建一个列表中每个元素的组件(因此,例如,如果我有概述和警报,它将创建两个组件,一个用于具有名称概述和标题概述的概述,另一个具有警报
标签: reactjs components