You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React/Next.js中如何在map循环内添加cat_name条件判断

在React/Next.js的map循环中添加分类条件判断的实现方法

你可以通过两种方式实现需求,同时需要注意JSX中不能直接使用if语句,要改用表达式语法:

方案一:先过滤数据再渲染

先筛选出符合cat_name!="" || cat_name=="pinned"条件的数据,再进行map渲染,逻辑更清晰:

{students.data?.length > 0 &&
  students.data
    .filter(blog => blog.cat_name !== "" || blog.cat_name === "pinned")
    .map((blog) => (
      <div key={blog.id}>
        {blog.cat_name}
        {/* 这里写符合条件后的后续代码 */}
      </div>
    ))
}

方案二:在map内部做条件判断

如果需要保留所有列表项,仅根据条件展示不同内容,用三元表达式替代if/else语句:

{students.data?.length > 0 &&
  students.data.map((blog) => (
    <div key={blog.id}>
      {(blog.cat_name !== "" || blog.cat_name === "pinned") ? (
        <>
          {blog.cat_name}
          {/* 符合条件时的后续代码 */}
        </>
      ) : (
        <>
          {/* 不符合条件时的后续代码 */}
        </>
      )}
    </div>
  ))
}

注意事项

  • 列表渲染必须给每个项添加唯一的key属性(示例中用blog.id,你可以替换为数据中实际的唯一标识),避免React警告。
  • 方案一更适合仅需要渲染符合条件项的场景,能减少不必要的渲染逻辑;方案二则适用于需要保留所有项但差异化展示的场景。

内容的提问来源于stack exchange,提问作者Deepika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:55:20