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

React按钮组切换active类:图库分类筛选按钮如何绑定激活状态

实现方案

步骤1:新增激活分类状态

你需要新增一个状态变量存储当前选中的分类,默认值设为all满足页面加载默认激活的需求:

import { useState } from 'react';

// 在组件内部声明状态
const [activeCategory, setActiveCategory] = useState('all');

步骤2:修改筛选逻辑,同步更新激活状态

点击按钮筛选的同时,把当前选中的分类存入状态:

const filterGalley = (value) => {
  // 新增这行更新激活分类
  setActiveCategory(value);

  if (value === "all") {
    setGalleryItems(galleryData);
    return;
  }

  const filteredData = galleryData.filter((item) => item.category === value);
  setGalleryItems(filteredData);
};

步骤3:动态绑定按钮类名

渲染按钮时判断当前分类是否匹配激活状态,匹配就追加active类:

{
  galleryData.map((item, index) => (
    <button
      key={index}
      onClick={() => filterGalley(item.category)}
      {/* 动态拼接类名 */}
      className={`filter-button ${item.category === activeCategory ? 'active' : ''}`}
    >
      {item.category}
    </button>
  ));
}

补充说明

你可以根据需求自定义active类的样式,示例样式参考:

.filter-button.active {
  background: #1677ff;
  color: #fff;
  border-color: #1677ff;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:06:02