如何使用选择选项同步 antd 多选表复选框状态

Posted

技术标签:

【中文标题】如何使用选择选项同步 antd 多选表复选框状态【英文标题】:how to sync the antd multiple select table checkbox state with a select option 【发布时间】:2021-09-23 06:41:30 【问题描述】:

我有 antd 多行可选表,每行都有一个选择选项。当我点击一个复选框时,该行应该被选中,并且 select 的默认值应该更改为“Active”。当我取消选中该复选框时,该行不应被选中,并且 select 的默认值应更改为“非活动”。 同样,当我将选项选择为活动时,该行的复选框应该被勾选。并且当我将选项设置为 Inactive 复选框时,应该取消勾选。

有人知道如何实现吗?

const columns = [

      title: "name",
      dataIndex: "name",
      key: "name",
    ,

      title: "status",
      dataIndex: "status",
      key: "status",
      render: (text: any, record: any) => 
        return (
          <Select  style= width: 120  >
            <Option value="Active">Active</Option>
            <Option value="Inactive">Inactive</Option>
          </Select>
        );
      ,
    ,
]

const dataSource = [
 
      key: "1",
      name: "Mike",
      status: null,
    ,

      key: "2",
      name: "jane",
      status: null,
    ,
]

const rowSelection =  
     onChange: (selectedRowKeys: any, selectedRows: any) => 
      console.log("selectedRows ",selectedRows)
      console.log("selectedRows ",selectedRowKeys)
      ,
    getCheckboxProps: (record: any) => (
    
      
    ),
  ;

return(
<Table
        columns=columns
        rowSelection= type: "checkbox", ...rowSelection 
        dataSource=dataSource
      />
)

【问题讨论】:

【参考方案1】:

您应该为 Select 组件使用状态值。

const [selectedValues, setSelectedValues] = useState(null);

<Select  style= width: 120  value=selectedValues.find(/*write find function that will based on key of record*/) ? "Active" : "Inactive" >
            <Option value="Active">Active</Option>
            <Option value="Inactive">Inactive</Option>
          </Select>


const rowSelection =  
     onChange: (selectedRowKeys: any, selectedRows: any) => 
      console.log("selectedRows ",selectedRows)
      console.log("selectedRows ",selectedRowKeys)

      setSelectedValues(selectedRows);
      ,
    getCheckboxProps: (record: any) => (
    
      
    ),
  ;

【讨论】:

嗨,当我在选择下拉列表中选择一个选项时,您知道如何勾选或取消勾选表格中的复选框。

以上是关于如何使用选择选项同步 antd 多选表复选框状态的主要内容,如果未能解决你的问题,请参考以下文章

antd多选框选项太多数据量太大出现页面卡顿怎么解决

如何使复选框作为多选选项?

如果未选择任何选项,则多选返回“null”

如何用asp实现checkbox多选

checkbox多选按钮如何取值?

在一定条件下取消选中多选框的选中项