当前位置:首页 > React

react表格两排复选框如何设定

2026-01-26 09:42:59React

实现双排复选框的表格设计

在React中实现两排复选框的表格,可以通过以下方式完成。假设使用antd库的Table组件,结合自定义渲染实现双排布局。

核心代码示例:

import { Table, Checkbox } from 'antd';

const dataSource = [
  { key: '1', name: '选项组A' },
  { key: '2', name: '选项组B' }
];

const columns = [
  {
    title: '名称',
    dataIndex: 'name',
    key: 'name',
  },
  {
    title: '复选框组',
    dataIndex: 'checks',
    key: 'checks',
    render: () => (
      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 8 }}>
        {[1, 2, 3, 4].map(item => (
          <Checkbox key={item}>选项{item}</Checkbox>
        ))}
      </div>
    )
  }
];

function DoubleRowCheckboxTable() {
  return <Table dataSource={dataSource} columns={columns} />;
}

自定义样式布局方案

若需要更灵活的布局控制,可采用CSS Grid或Flexbox实现双排列:

const checkboxStyle = {
  display: 'grid',
  gridTemplateColumns: 'repeat(2, 150px)',
  gridAutoRows: '30px',
  alignItems: 'center'
};

const renderChecks = () => (
  <div style={checkboxStyle}>
    {['周一', '周二', '周三', '周四', '周五', '周六', '周日'].map(day => (
      <Checkbox key={day}>{day}</Checkbox>
    ))}
  </div>
);

状态管理方案

需要管理复选框状态时,建议使用React的useState配合行数据唯一标识:

const [checkedState, setCheckedState] = useState({});

const handleCheck = (rowKey, checkKey) => {
  setCheckedState(prev => ({
    ...prev,
    [`${rowKey}-${checkKey}`]: !prev[`${rowKey}-${checkKey}`]
  }));
};

// 在render函数中:
<Checkbox 
  checked={checkedState[`${record.key}-${item}`]} 
  onChange={() => handleCheck(record.key, item)}
/>

响应式布局处理

针对移动端适配,可通过媒体查询调整列数:

.checkbox-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 768px) {
  .checkbox-container {
    grid-template-columns: 1fr;
  }
}

以上方案可根据实际需求组合使用,关键点在于:

react表格两排复选框如何设定

  • 使用CSS Grid/Flexbox控制双排布局
  • 通过Table的render属性自定义单元格内容
  • 建立合适的状态管理结构跟踪选中状态

标签: 复选框两排
分享给朋友:

相关文章

vue 复选框实现

vue 复选框实现

实现基础复选框 在 Vue 中实现复选框可以通过 v-model 绑定到数据属性。创建一个布尔值数据属性用于存储复选框的状态: <template> <div>…

js全选复选框怎么实现

js全选复选框怎么实现

实现全选复选框的方法 使用事件监听和属性操作实现全选功能。通过监听全选复选框的change事件,动态设置其他复选框的checked属性。 <input type="checkbox" id="…

jquery获取复选框的值

jquery获取复选框的值

获取单个复选框的值 使用 prop() 或 is() 方法检查复选框是否被选中,并通过 val() 获取值: var isChecked = $('#checkboxId').prop('che…

vue实现复选框逻辑

vue实现复选框逻辑

实现复选框基础功能 在Vue中实现复选框逻辑可以通过v-model指令绑定到data属性。创建一个布尔值变量来存储复选框的状态。 <template> <div>…

vue复选框实现

vue复选框实现

Vue 复选框实现方法 基础实现 使用 v-model 双向绑定到布尔值,适用于单个复选框: <template> <input type="checkbox" v-model…