React - это все о компонентах, поэтому лучше, чем обычная функция, лучше извлекать общую разметку в компонент, который на самом деле может быть «компонентом функции» (в отличие от «компонента класса»).
<code>export function PopulateTab({ avgLength, count, rawStrings }) {
return (<div className="box box-default">
<div className="box-header with-border">
<h3 className="box-title">Strings Info</h3>
<div className="key-details">
<dl className="dl-horizontal">
<dt>Count</dt>
<dd>{count}</dd>
<dt>Average Length</dt>
<dd>{avgLength}</dd>
</dl>
</div>
</div>
<div className="box-header with-border">
<h3 className="box-title">Strings</h3>
<div>
<pre>
{rawStrings}
);
}
, если tabsContents
- это массив объектов типа ..
const tabsContents = [
{ avgLength: 5, count: 8, rawStrings: "foo" },
{ avgLength: 6, count: 12, rawStrings: "bar" },
];
вы можете использовать PopulateTab
, вот так ..
import { PopulateTab } from "./populate-tab";
function Tabs({ tabsContents }) {
return (
<div>
{tabsContents.map(
({ avgLength, count, rawStrings }) =>
<PopulateTab avgLength={avgLength} count={count} rawStrings={rawStrings} />
)}
</div>
);
}
или, точнее ..
function Tabs({ tabsContents }) {
return (<div>{tabsContents.map(props => <PopulateTab {...props} />)}</div>);
}