【发布时间】:2021-03-11 02:37:30
【问题描述】:
我有 json 格式的数据,我想循环使用它来渲染相同的组件 (ContentThumbnail) 八次,但标题和其他内容不同。
我尝试创建一个接受四个参数的函数来实现这一点。这是我在名为 RenderContent.js 的单独文件中编写的函数:
import React from 'react';
import ContentThumbnail from './ContentThumbnail';
function RenderContentThumbnail(data, sectionName, wrapperStart, wrapperEnd) {
return (
<div>
{data
.filter(d => d.sectionName === { sectionName })
.map(filteredSection => (
{wrapperStart}
<ContentThumbnail {filteredSection.title} />
{wrapperEnd}
))}
</div>
);
}
export default RenderContentThumbnail;
这是我试图在我的组件 DefaultDashboard.js 中执行该功能的地方:
import React, { useEffect } from 'react';
import RenderContent from '../../content-thumbnail/RenderContent';
const DefaultDashboard = () => {
const { data } = useFetchData({ queryString: `${contentLibraryApiUrl}/GetContentForPage/Home` });
return (
RenderContentThumbnail(data, "topSection", "<div>", "</div>")
);
};
export default DefaultDashboard;
有人能帮我看看我哪里出错了吗?我的地图函数中出现错误,页面根本不会呈现。:(
非常感谢!
凯蒂
更新!
我已对代码进行了调整以指定称为“标题”的道具,但我得到以下内容:
【问题讨论】:
-
你应该返回
,而不是作为函数调用 -
实际上,当您执行
<RenderContent {...props} />时,您正在调用 RenderContent 函数,但使用的是 jsx 语法。这是另一种方式,但我同意你应该坚持使用 jsx 方法。
标签: json reactjs array.prototype.map