【发布时间】:2016-06-06 01:29:35
【问题描述】:
我有一个使用array.map 渲染组件的javascript 数组。我将此数组切换为 es6 Map,以便能够使用键值对更轻松地查找项目,并在 Map 上从 .map 切换为 forEach。在 forEach 内部,我调用了一个返回 React 组件的渲染方法,但它没有被渲染。如何在forEach 中渲染组件?
<div className='gallery__items'>
{resultsByGuid.forEach((result, index) => {
key++;
this.renderGalleryItem(result, key);
})}
</div>
这里是 renderGalleryItem 方法:
renderGalleryItem = (item, index) => {
const { gridItemSelected, itemThumbnailRequested } = this.props;
return (
<GalleryItem
key={index}
item={item}
onClick={gridItemSelected}
fetchThumbnailFunc={itemThumbnailRequested}
/>
);
};
我知道 forEach 不会返回任何内容,但这是否意味着我无法在其中进行渲染?
【问题讨论】:
-
您如何将该 html 字符串存储/附加到您在 forEach 之后注入的变量中?
-
使用
Map.prototype.values()方法。 -
那么,JSX 需要一个数组吗?然后使用
Array.from(resultsByGuid)并从那里使用.map。 -
@John 请不要仅仅因为它们主要是关于框架或库而不是语言本身而从 JavaScript 问题中删除 [javascript] 标记。即使在这种情况下,使用语言标签仍然是完全有效的(并且对关注标签的人很有用)。在不存在的地方添加框架标签是一个很好的改变,但删除 [javascript] 不是。
标签: javascript reactjs foreach jsx