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

如何在React DataTable中显示条件判断数据?

解决React DataTable中根据check_in字段生成Status列的问题

你可以通过两种方式实现需求:

方法一:直接在列配置中使用三元运算符

不需要修改原始数据,直接在columns的selector里根据check_in字段判断显示内容:

export default function Table() {
  const [data, setData] = useState([]);

  const columns = [
    {
      name: 'name',
      selector: row => row.name,
    },
    {
      name: 'email_id',
      selector: row => row.email_id,
    },
    {
      name: 'Status',
      // 直接通过check_in字段判断显示内容
      selector: row => row.check_in !== null ? 'present' : 'absent'
    }
  ];

  useEffect(() => {
    axios.get("view")
      .then((response) => {
        setData(response.data);
      })
      .catch((error) => {
        console.log(error);
      });
  }, []);  

  return (
    <DataTable columns={columns} data={data} />
  )
}

方法二:预处理数据添加Status字段

如果后续需要复用Status字段,可以在获取数据后给每条数据新增该字段:

export default function Table() {
  const [data, setData] = useState([]);

  const columns = [
    {
      name: 'name',
      selector: row => row.name,
    },
    {
      name: 'email_id',
      selector: row => row.email_id,
    },
    {
      name: 'Status',
      selector: row => row.Status
    }
  ];

  useEffect(() => {
    axios.get("view")
      .then((response) => {
        // 预处理数据,添加Status字段
        const processedData = response.data.map(row => ({
          ...row,
          Status: row.check_in !== null ? 'present' : 'absent'
        }));
        setData(processedData);
      })
      .catch((error) => {
        console.log(error);
      });
  }, []);  

  return (
    <DataTable columns={columns} data={data} />
  )
}

两种方法都能实现你想要的效果,按需选择即可。

内容的提问来源于stack exchange,提问作者Mustafa_Dahodwala 19_13

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:01