【问题标题】:antd checkbox inside a button按钮内的 antd 复选框
【发布时间】:2021-04-23 13:46:59
【问题描述】:

在这里反应初学者,这里我有 antd 复选框,我想将此复选框更改为按钮但仍然具有复选框功能:这是我的复选框:

  import { Checkbox } from "antd";

 <div className="modal-body d-flex flex-column">
                  <Checkbox
                    indeterminate={indeterminate}
                    onChange={onCheckAllChange}
                    checked={checkAll}
                  >
                    Select All{" "}
                  </Checkbox>
                </div>

这就是我试图做的,我试图将不透明度为零给复选框以隐藏它,然后将复选框放在按钮内,以便将其外观更改为按钮并具有复选框功能,但问题是,这个新的如果您单击按钮的左侧但右侧不起作用,则按钮有效,有什么解决方案吗? :

  import { Checkbox } from "antd";

 <div className="modal-body d-flex flex-column">
                  <button>
                    <Checkbox
                      style={{ opacity: "0" }}
                      indeterminate={indeterminate}
                      onChange={onCheckAllChange}
                      checked={checkAll}
                    >
                      Select All{" "}
                    </Checkbox>
                    Select All
                  </button>
                </div>

【问题讨论】:

    标签: html css reactjs typescript


    【解决方案1】:

    如果您希望按钮与复选框完全相同,只需将onCheckAllChange 传递给按钮onClick

    <div className="modal-body d-flex flex-column">
     <button onClick={onCheckAllChange}>
       Select All
     </button>
    </div>
    

    假设您的状态变量为 checkedListindeterminatecheckAll

    const onCheckAllChange = (e: any) => {
     setCheckedList(!checkedList.length ? allColumnKeys : []);
     setIndeterminate(false); 
     setCheckAll(!checkAll);
    };
    

    【讨论】:

    • 就像它只会以一种方式工作,它将取消选中所有内容,但再次单击将无济于事
    • 像这样很容易实现,谢谢,但是如果将复选框转换为按钮不是那么容易的话,你有什么我可以学习的例子吗?
    • 这取决于您所面临的情况,在这种情况下很清楚,但有时不是。例如,在处理程序根据 HTML 元素(按钮或复选框等)执行不同的情况下。在这种情况下,您可以将参数(元素的类型)传递给处理程序并根据该类型执行操作。
    • 我不是专业人士,想学习一下,你知道在某个地方有这样的例子吗'你可以将参数(元素的类型)传递给处理程序并根据该类型采取行动'?
    • 我也不是专业人士:D。 react 中的 reducers 就是完美的例子docs.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2018-06-26
    • 2014-09-05
    相关资源
    最近更新 更多