javascript - 嵌套循环返回 Reactjs 中的简单 ListItem - -Object.values 和 Object.keys
问题描述
真是难住了。我正在尝试为ListItem
对象数组中每个值的每个键创建一个。当我登录item
时,它会以字符串形式返回我要查找的密钥。伟大的!但是,列表项永远不会呈现在页面上。
return (
<div>
<List className="list">
{Object.values(props.sectionInfo).forEach(section => {
Object.keys(section).map((item, index) => {
return (
<ListItem button className='list-item'> //doesn't render, but also doesn't throw errors
<ListItemText primary={item} />
</ListItem>
)
});
})}
</List>
</div>
);
console.log(item) //returns "red", "blue"
下面完美地呈现了列表,但是列表项是索引 (0, 1)
return (
<div>
<List className="list">
{Object.keys(props.sectionInfo).map((section, index) => {
return (
<ListItem button className='list-item'>
<ListItemText primary={section} />
</ListItem>
)
})}
</List>
</div>
);
任何见解都会有所帮助。
解决方案
这是因为你forEach
在外循环中使用了,它实际上并没有返回任何东西,所以children
prop 的List
is undefined
。试试这个:
return (
<div>
<List className="list">
{Object.values(props.sectionInfo).map(section => {
return Object.keys(section).map((item, index) => {
return (
<ListItem button className='list-item'>
<ListItemText primary={item} />
</ListItem>
)
});
})}
</List>
</div>
);
推荐阅读
- wordpress - Wordpress 更新后,点击链接停止工作
- ios - Swift识别tableView单元格点击区域
- email - Sendgrid - 通过来自非 zapier 的 webhook 触发电子邮件
- python - 使用潜在语义分析来了解文档是否与某个主题有关
- java - Spring Boot - Jpa 存储库
- javascript - 使用 React,如何实现具有 css 转换切换(从 fullHeight 到 0px)的基本 Accordion(允许高度保持动态/自动)
- fonts - 字体的 OpenType 功能在 InDesign 中的复合字体中不起作用
- reactjs - 使用 Reactjs 转换为大写并设置为 Textarea 值
- c++ - 在类构造函数c ++中将this与指针数组一起使用
- architecture - DDD - 来自其他有界上下文的验证参考 ID