JSX 只映射数组中的第一个对象

JSX map only the first object in array

我很好奇如何在 JSX 中使用 .map 只渲染数组中的第一个对象。

{this.state.data.map(data =>
    <span className="fooBar">
        <a href={data.foo}>{data.bar}</a>
    </span>
)}

谢谢!

最简单的解决方案就是完全不使用 .map

<span className="fooBar">
    <a href={this.state.data[0].foo}>{this.state.data[0].bar}</a>
</span>

.map 将始终遍历数组中的每个对象 - 无法提前突破它。

Map 旨在调用应用转换的数组中的每个元素。

如果您只想渲染第一个元素,那么您最好显式调用第一个元素 this.state.data[0] 或使用支持 head 等方法的库。

Lodash 示例

const link = _.head(this.state.data);
<span className="fooBar">
  <a href={link.href}>{link.title}</a>
</span>

此解决方案工作正常。

{data.map((data, i) =>
    <span className="fooBar">
        <a href={data.foo}>{data.bar}</a>
    </span>
)[0]}