ant-design/components/dropdown/demo/loading.md
dingkang 58df74c38e
docs: replace class component with hooks (#35519)
* docs(badge): replace class component with hooks

* docs(button): replace class component with hooks

* docs(calendar): replace class component with hooks

* docs(card): replace class component with hooks

* docs(button): replace class component with hooks

* chore(deps): remove webpack devDependencies

* docs(cascader): replace class component with hooks

* docs(checkbox): replace class component with hooks

* docs(collapse): replace class component with hooks

* docs(comment): replace class component with hooks

* docs(descriptions): replace class component with hooks

* docs(config-provider): replace class component with hooks

* docs(date-picker): replace class component with hooks

* docs(drawer): replace class component with hooks

* docs(dropdown): replace class component with hooks

* docs(dropdown): replace class component with hooks

* docs(empty): replace class component with hooks

* docs(grid): replace class component with hooks

* docs(input): replace class component with hooks

* docs(input-number): replace class component with hooks

* docs(demo): fix lint error
2022-05-14 16:40:42 +08:00

1.6 KiB

order title
9
zh-CN en-US
加载中状态 Loading

zh-CN

添加 loading 属性即可让按钮处于加载状态,最后两个按钮演示点击后进入加载状态。

en-US

A loading indicator can be added to a button by setting the loading property on the Dropdown.Button.

import { Menu, Dropdown, Space } from 'antd';
import { DownOutlined } from '@ant-design/icons';

const menu = (
  <Menu
    items={[
      {
        label: 'Submit and continue',
        key: '1',
      },
    ]}
  />
);
export default () => {
  const [loadings, setLodings] = React.useState([]);

  const enterLoading = index => {
    const newLoadings = [...loadings];
    newLoadings[index] = true;
    setLodings(newLoadings);

    setTimeout(() => {
      setLodings(prevLoadings => {
        const temLoadings = [...prevLoadings];
        temLoadings[index] = false;
        return temLoadings;
      });
    }, 6000);
  };

  return (
    <Space direction="vertical">
      <Dropdown.Button type="primary" loading overlay={menu}>
        Submit
      </Dropdown.Button>
      <Dropdown.Button type="primary" size="small" loading overlay={menu}>
        Submit
      </Dropdown.Button>
      <Dropdown.Button
        type="primary"
        loading={loadings[0]}
        overlay={menu}
        onClick={() => enterLoading(0)}
      >
        Submit
      </Dropdown.Button>
      <Dropdown.Button
        icon={<DownOutlined />}
        loading={loadings[1]}
        overlay={menu}
        onClick={() => enterLoading(1)}
      >
        Submit
      </Dropdown.Button>
    </Space>
  );
};