Измените свой код на это:
let parksJsx = ''
if (!parks) {
parksJsx = 'loading...'
} else {
parksJsx = parks.map(park => (
<Col key={park.name} lg={4} className="park-data">
<h5>{park.Name}</h5>
<img src={park.Thumbnail}/>
<li>Location: {park.Location}</li>
<li>Est. {park.Established}</li>
<li>Area: {park.Area}</li>
<li>Recreation Visitors: {park['Recreation visitors']}</li>
<p>{park.Description}</p>
<br />
</Col>
))
}
return (
<div>
<h2 className="header">All U.S. National Parks:</h2>
<div className="park-container">
<Container>
<Row>
{parksJsx}
</Row>
</Container>
</div>
</div>
)
Проблема заключалась в том, что вы рендерили контейнер со строкой для каждого элемента парка вместо того, чтобы поместить все элементы парка в один контейнер со строкой.
Решение состояло в том, чтобы переместить контейнер с компонентами строк из отдельных элементов парка и поместить их вне карты парков.
Если бы я мог порекомендовать некоторое форматирование, я бы предложил вам реализовать свой компонент следующим образом :
return (
<div>
<h2 className="header">All U.S. National Parks:</h2>
<div className="park-container">
{!parks ? 'loading...' :
<Container>
<Row>
{parks.map(park => (
<Col key={park.name} lg={4} className="park-data">
<h5>{park.Name}</h5>
<img src={park.Thumbnail}/>
<li>Location: {park.Location}</li>
<li>Est. {park.Established}</li>
<li>Area: {park.Area}</li>
<li>Recreation Visitors: {park['Recreation visitors']}</li>
<p>{park.Description}</p>
<br />
</Col>
))}
</Row>
</Container>
}
</div>
</div>
)
Тогда логи c намного легче читать сверху вниз.