【发布时间】:2016-06-20 02:16:59
【问题描述】:
我正在学习 React,但遇到了渲染多个元素的问题。
问题是我正在从 Firebase 检索一个数组,它需要为数组中的每个项目返回一个新的 div 和 svg。我知道 React 只会渲染 1 个元素,所以我需要将我的内容放在一个包装器中,我已经这样做了。我还创建了一个变量,它使用 .map() 循环遍历数组并为我创建这些元素。
我不明白的是,为什么它没有为数组中的每个项目返回一个新的 div 和 svg?相反,它只创建 1 个 div 和 svg?该数组包含文件夹名称列表。
任何帮助将不胜感激。
class SidebarPrivateFolders extends React.Component {
constructor(props) {
super(props)
}
render() {
let list = this.props.data.map((currentObj) => {
return (
<div>
<svg className="sidebar-icon">
<use xlinkHref={currentObj.xlinkHref}></use>
</svg>
<div className="public-folders">{currentObj.name}</div>
</div>
);
});
return (
<div className="sidebar-section">
<div className="sidebar-section-wrapper">
{list}
</div>
</div>
);
}
}
Console.log(this.props.data) 返回以下截图。
【问题讨论】:
-
可以发
this.props.data的样本数据 -
确实如此......数据是一个只有一个元素的数组......也许你想要
data[0].name[0].map(fn)
标签: javascript arrays reactjs