【发布时间】:2019-03-25 01:50:58
【问题描述】:
我正在尝试构建一个选项卡式内容组件,但不确定如何最好地进行此操作。
我有一个对象数组,如下所示,可以接受任意数量
tabs= {[
{
"title": "Some title 1",
"otherComponents": [
<Title ... />,
<Paragraph... />
]
},
...
...
...
}]
我有一种感觉,我需要首先专注于显示tab.title,然后在otherComponents中显示tab.contents。但不确定我如何将两者链接在一起以识别活动选项卡以及要显示哪些内容。在此组件的文件夹结构中的任何帮助以及需要什么样的功能将不胜感激,因为我我不确定最好的方法。您建议首先关注什么?
我猜是下面的函数:getTabHeaders 和getTabContents,然后将它们显示在彼此下方?
我在下面有以下文件夹结构
-选项卡式内容 -tabbed-content.js -tab-content.js -标签页眉
不确定它们是否应该全部进入主文件tabbed-content。
在tabbed-content我有类似下面的东西
getTabbedContent() {
const {
tabs,
} = this.props;
const numberOfTabs = Object.keys(tabs).length;
return (
<StyledTabbedContent>
{ tabs.map((tab, index) => (
<TabHeader
key={uuidv1()}
title={tab.title}
tabNumber={1+ index}
numberOfTabs={numberOfTabs}
/>
),
)}
</StyledTabbedContent>
);
}
在tab-header我有以下
render() {
const { numberOfTabs, title } = this.props;
return (
<StyledTab
numberOfTabs={numberOfTabs}
>
<StyledTitle>{title}</StyledTitle>
</StyledTab>
)
}
}
我的想法是在tab-content 中有与上述类似的东西,但不确定如何将它们链接在一起......这让我觉得我走错了路......这就是为什么我要的是文件夹结构/方法结构或首先解决问题的计划
【问题讨论】:
标签: javascript reactjs components styled-components