mirror of
https://github.com/ant-design/ant-design.git
synced 2024-11-26 04:00:13 +08:00
update tag demo
This commit is contained in:
parent
4db2c32a30
commit
6ee804cc66
@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
order: 2
|
order: 2
|
||||||
title: 数据生成标签
|
title: 动态添加和删除
|
||||||
---
|
---
|
||||||
|
|
||||||
用数组生成一组标签。
|
用数组生成一组标签,可以动态添加和删除。
|
||||||
|
|
||||||
> 使用 `afterClose` 而不是 `onClose`,删除时有动画效果。
|
> 使用 `afterClose` 删除时有动画效果。
|
||||||
|
|
||||||
````jsx
|
````jsx
|
||||||
import { Tag, Button } from 'antd';
|
import { Tag, Button } from 'antd';
|
||||||
@ -15,20 +15,12 @@ const App = React.createClass({
|
|||||||
getInitialState() {
|
getInitialState() {
|
||||||
return {
|
return {
|
||||||
tags: [
|
tags: [
|
||||||
{ key: 1, name: '标签一' },
|
{ key: 1, name: '不可移除' },
|
||||||
{ key: 2, name: '标签二' },
|
{ key: 2, name: '标签二' },
|
||||||
|
{ key: 3, name: '标签三' },
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
onClose(key, e) {
|
|
||||||
e.preventDefault();
|
|
||||||
if (key === 1) {
|
|
||||||
console.log('can not close it', this.state.tags);
|
|
||||||
this.setState({ tags: [...this.state.tags] });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.handleClose(key);
|
|
||||||
},
|
|
||||||
handleClose(key) {
|
handleClose(key) {
|
||||||
const tags = [...this.state.tags].filter(tag => (tag.key !== key) && tag);
|
const tags = [...this.state.tags].filter(tag => (tag.key !== key) && tag);
|
||||||
console.log(tags);
|
console.log(tags);
|
||||||
@ -41,15 +33,15 @@ const App = React.createClass({
|
|||||||
this.setState({ tags });
|
this.setState({ tags });
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
|
const { tags } = this.state;
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{this.state.tags.map(tag =>
|
{tags.map(tag =>
|
||||||
<Tag key={tag.key} closable onClose={(e) => this.onClose(tag.key, e)}
|
<Tag key={tag.key} closable={tag.key !== 1} afterClose={() => this.handleClose(tag.key)}>
|
||||||
afterClose={() => this.handleClose(tag.key)}>{tag.name}</Tag>
|
{tag.name}
|
||||||
|
</Tag>
|
||||||
)}
|
)}
|
||||||
<div>
|
<Button size="small" type="primary" onClick={this.addTag}>添加标签</Button>
|
||||||
<Button onClick={this.addTag}>添加标签</Button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -25,9 +25,10 @@ export default class Tag extends React.Component {
|
|||||||
this.props.onClose(e);
|
this.props.onClose(e);
|
||||||
if (e.defaultPrevented) return;
|
if (e.defaultPrevented) return;
|
||||||
const dom = ReactDOM.findDOMNode(this);
|
const dom = ReactDOM.findDOMNode(this);
|
||||||
dom.style.width = `${dom.offsetWidth}px`;
|
const domWidth = dom.getBoundingClientRect().width;
|
||||||
|
dom.style.width = `${domWidth}px`;
|
||||||
// It's Magic Code, don't know why
|
// It's Magic Code, don't know why
|
||||||
dom.style.width = `${dom.offsetWidth}px`;
|
dom.style.width = `${domWidth}px`;
|
||||||
this.setState({
|
this.setState({
|
||||||
closing: true,
|
closing: true,
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user