问答

ant checkbox全选状态下不能触发onchange

作者:admin 2021-05-07 我要评论

利用ant的checkbox中checked属性做的 使用的框架的是dvajs。点击全选后不会触发子checkbox中的onchange ### checkboxGroup 的 onChange 确实不会触发子 checkbox...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

利用ant的checkbox中checked属性做的 使用的框架的是dvajs。点击全选后不会触发子checkbox中的onchange
image.png

###

checkboxGroup 的 onChange 确实不会触发子 checkbox 的 onChange,可以手动调一下

import React from 'react';
import ReactDOM from 'react-dom';
import 'antd/dist/antd.css';
import './index.css';
import { Checkbox, Divider } from 'antd';

const CheckboxGroup = Checkbox.Group;

const plainOptions = ['Apple', 'Pear', 'Orange'];
const defaultCheckedList = ['Apple', 'Orange'];

const App = () => {
  const [checkedList, setCheckedList] = React.useState(defaultCheckedList);
  const [indeterminate, setIndeterminate] = React.useState(true);
  const [checkAll, setCheckAll] = React.useState(false);

  const onChange = list => {
    setCheckedList(list);
    setIndeterminate(!!list.length && list.length < plainOptions.length);
    setCheckAll(list.length === plainOptions.length);
    console.log(list);
  };

  const onCheckAllChange = e => {
    setCheckedList(e.target.checked ? plainOptions : []);
    setIndeterminate(false);
    setCheckAll(e.target.checked);
    onChange(e.target.checked ? plainOptions : []);
  };

  return (
    <>
      <Checkbox indeterminate={indeterminate} onChange={onCheckAllChange} checked={checkAll}>
        Check all
      </Checkbox>
      <Divider />
      <CheckboxGroup options={plainOptions} value={checkedList} onChange={onChange} />
    </>
  );
};

ReactDOM.render(<App />, document.getElementById('container'));

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • ant checkbox全选状态下不能触发onchan

    ant checkbox全选状态下不能触发onchan

  • scss 中不能通过:export 导出scss变量

    scss 中不能通过:export 导出scss变量

  • SpringBoot 怎么实现数据源的动态添加

    SpringBoot 怎么实现数据源的动态添加

  • 存储快照信息用什么数据库

    存储快照信息用什么数据库

腾讯云代理商
海外云服务器