【发布时间】:2017-04-05 15:37:13
【问题描述】:
我正在使用 Material UI 中的选项卡,其中显示了一个由选项卡过滤的列表组件,请参阅我的容器组件中选项卡的代码:
<Tabs
className="DrawerTabs"
inkBarStyle={{ display: 'none' }}
>
<Tab label="Headline"
data-route="/headline"
onActive={this.handleActive}
className={this.isActive('Headline')}
>
<div>
<ModulesListContainer
filter="Headline"
/>
</div>
</Tab>
<Tab label="Body"
data-route="/body"
onActive={this.handleActive}
className={this.isActive('Body')}
>
<div>
<ModulesListContainer
filter="Body"
/>
</div>
</Tab>
<Tab
label="Other"
data-route="/other"
onActive={this.handleActive}
className={this.isActive('Other')}
>
<div>
<ModulesListContainer
filter="Other"
/>
</div>
</Tab>
</Tabs>
以及我放置在每个选项卡中的 ModuleList 的代码,它仅显示基于从容器组件传递的过滤器的项目:
const ModulesList = (props) => {
let ListItems = props.modulesProps.map(module => {
if (props.filter === module.category) {
return (
<ListItem
key={module.id}
className="ModulePreview"
>
{module.id} - {module.name} - {module.thumbnail}
<FontAwesome
name="plus-circle"
size="2x"
onClick={props.addModule.bind(this, module)}
className="AddModule"
/>
</ListItem>
)
}
})
return (
<div className="ModulesList">
<List>
{ListItems}
</List>
</div>
)
}
即使我只能在每个选项卡中看到过滤后的项目(因此键是唯一的,因为每个项目只存在一次)我仍然收到此警告:
警告:flattenChildren(...): 遇到两个相同的孩子 键,
1。子键必须是唯一的;当两个孩子共用一把钥匙时, 只会使用第一个孩子。
为什么会这样?
任何帮助/想法/提示将不胜感激。
提前非常感谢! :)
【问题讨论】:
标签: javascript reactjs material-ui