Button
To trigger an operation.
When To Use#
A button means an operation (or a series of operations). Clicking a button will trigger corresponding business logic.
Examples
import { Button } from 'antd';
ReactDOM.render(
<div>
<Button type="primary">Primary</Button>
<Button>Default</Button>
<Button type="dashed">Dashed</Button>
<Button type="danger">Danger</Button>
</div>,
mountNode
);
import { Button, Radio, Icon } from 'antd';
class ButtonSize extends React.Component {
state = {
size: 'large',
};
handleSizeChange = (e) => {
this.setState({ size: e.target.value });
}
render() {
const size = this.state.size;
return (
<div>
<Radio.Group value={size} onChange={this.handleSizeChange}>
<Radio.Button value="large">Large</Radio.Button>
<Radio.Button value="default">Default</Radio.Button>
<Radio.Button value="small">Small</Radio.Button>
</Radio.Group>
<br /><br />
<Button type="primary" size={size}>Primary</Button>
<Button size={size}>Normal</Button>
<Button type="dashed" size={size}>Dashed</Button>
<Button type="danger" size={size}>Danger</Button>
<br />
<Button type="primary" shape="circle" icon="download" size={size} />
<Button type="primary" shape="round" icon="download" size={size}>Download</Button>
<Button type="primary" icon="download" size={size}>Download</Button>
<br />
<Button.Group size={size}>
<Button type="primary">
<Icon type="left" />Backward
</Button>
<Button type="primary">
Forward<Icon type="right" />
</Button>
</Button.Group>
</div>
);
}
}
ReactDOM.render(<ButtonSize />, mountNode);
import { Button } from 'antd';
class App extends React.Component {
state = {
loading: false,
iconLoading: false,
}
enterLoading = () => {
this.setState({ loading: true });
}
enterIconLoading = () => {
this.setState({ iconLoading: true });
}
render() {
return (
<span>
<Button type="primary" loading>
Loading
</Button>
<Button type="primary" size="small" loading>
Loading
</Button>
<br />
<Button type="primary" loading={this.state.loading} onClick={this.enterLoading}>
Click me!
</Button>
<Button type="primary" icon="poweroff" loading={this.state.iconLoading} onClick={this.enterIconLoading}>
Click me!
</Button>
<br />
<Button shape="circle" loading />
<Button type="primary" shape="circle" loading />
</span>
);
}
}
ReactDOM.render(<App />, mountNode);
Basic
With Icon
import { Button, Icon } from 'antd';
const ButtonGroup = Button.Group;
ReactDOM.render(
<div>
<h4>Basic</h4>
<ButtonGroup>
<Button>Cancel</Button>
<Button>OK</Button>
</ButtonGroup>
<ButtonGroup>
<Button disabled>L</Button>
<Button disabled>M</Button>
<Button disabled>R</Button>
</ButtonGroup>
<ButtonGroup>
<Button>L</Button>
<Button>M</Button>
<Button>R</Button>
</ButtonGroup>
<h4>With Icon</h4>
<ButtonGroup>
<Button type="primary">
<Icon type="left" />Go back
</Button>
<Button type="primary">
Go forward<Icon type="right" />
</Button>
</ButtonGroup>
<ButtonGroup>
<Button type="primary" icon="cloud" />
<Button type="primary" icon="cloud-download" />
</ButtonGroup>
</div>,
mountNode
);
import { Button } from 'antd';
ReactDOM.render(
<div>
<Button type="primary" block>Primary</Button>
<Button block>Default</Button>
<Button type="dashed" block>Dashed</Button>
<Button type="danger" block>danger</Button>
</div>,
mountNode
);
import { Button } from 'antd';
ReactDOM.render(
<div>
<Button type="primary" shape="circle" icon="search" />
<Button type="primary" icon="search">Search</Button>
<Button shape="circle" icon="search" />
<Button icon="search">Search</Button>
<br />
<Button shape="circle" icon="search" />
<Button icon="search">Search</Button>
<Button type="dashed" shape="circle" icon="search" />
<Button type="dashed" icon="search">Search</Button>
</div>,
mountNode
);
import { Button } from 'antd';
ReactDOM.render(
<div>
<Button type="primary">Primary</Button>
<Button type="primary" disabled>Primary(disabled)</Button>
<br />
<Button>Default</Button>
<Button disabled>Default(disabled)</Button>
<br />
<Button type="dashed">Dashed</Button>
<Button type="dashed" disabled>Dashed(disabled)</Button>
<div style={{ padding: '8px 8px 0 8px', background: 'rgb(190, 200, 200)' }}>
<Button ghost>Ghost</Button>
<Button ghost disabled>Ghost(disabled)</Button>
</div>
</div>,
mountNode
);
import {
Button, Menu, Dropdown, Icon,
} from 'antd';
function handleMenuClick(e) {
console.log('click', e);
}
const menu = (
<Menu onClick={handleMenuClick}>
<Menu.Item key="1">1st item</Menu.Item>
<Menu.Item key="2">2nd item</Menu.Item>
<Menu.Item key="3">3rd item</Menu.Item>
</Menu>
);
ReactDOM.render(
<div>
<Button type="primary">primary</Button>
<Button>secondary</Button>
<Dropdown overlay={menu}>
<Button>
Actions <Icon type="down" />
</Button>
</Dropdown>
</div>,
mountNode
);
import { Button } from 'antd';
ReactDOM.render(
<div style={{ background: 'rgb(190, 200, 200)', padding: '26px 16px 16px' }}>
<Button type="primary" ghost>Primary</Button>
<Button ghost>Default</Button>
<Button type="dashed" ghost>Dashed</Button>
<Button type="danger" ghost>danger</Button>
</div>,
mountNode
);
API#
To get a customized button, just set type
/shape
/size
/loading
/disabled
.
Property | Description | Type | Default |
---|---|---|---|
disabled | disabled state of button | boolean | false |
ghost | make background transparent and invert text and border colors, added in 2.7 | boolean | false |
href | redirect url of link button | string | - |
htmlType | set the original html type of button , see: MDN | string | button |
icon | set the icon of button, see: Icon component | string | - |
loading | set the loading status of button | boolean | { delay: number } | false |
shape | can be set to circle , round or omitted | string | - |
size | can be set to small large or omitted | string | default |
target | same as target attribute of a, works when href is specified | string | - |
type | can be set to primary ghost dashed danger (added in 2.7) or omitted (meaning default ) | string | default |
onClick | set the handler to handle click event | (event) => void | - |
block | option to fit button width to its parent width | boolean | false |
It accepts all props which native button support.
<Button>Hello world!</Button>
will be rendered into <button><span>Hello world!</span></button>
, and all the properties which are not listed above will be transferred to the <button>
tag.
<Button href="http://example.com">Hello world!</Button>
will be rendered into <a href="http://example.com"><span>Hello world!</span></a>
.
FAQ#
How to remove space between 2 chinese characters#
Use ConfigProvider to set autoInsertSpaceInButton
as false
.