diff --git a/components/tag/index.jsx b/components/tag/index.jsx index c4c641243..b4f21cafd 100644 --- a/components/tag/index.jsx +++ b/components/tag/index.jsx @@ -1,14 +1,17 @@ import React from 'react'; const prefixCls = 'ant-tag'; +import { transitionEndEvent, addEventListenerOnce } from '../util/index'; class AntTag extends React.Component { constructor(props) { super(props); this.state = { + closing: false, closed: false }; } + close(e) { let dom = React.findDOMNode(this); dom.style.width = dom.offsetWidth + 'px'; @@ -16,7 +19,13 @@ class AntTag extends React.Component { // 重复是去除浏览器渲染bug; dom.style.width = dom.offsetWidth + 'px'; this.setState({ - closed: true + closing: true + }); + addEventListenerOnce(dom, transitionEndEvent, () => { + this.setState({ + closed: true, + closing: false + }); }); this.props.onClose.call(this, e); } @@ -24,12 +33,12 @@ class AntTag extends React.Component { render() { let close = this.props.closable ? : ''; - let colorClass = this.props.prefixCls + '-' + this.props.color; + let colorClass = this.props.color ? this.props.prefixCls + '-' + this.props.color : ''; let className = this.props.prefixCls + ' ' + colorClass; - className = this.state.closed ? className + ' ' + this.props.prefixCls + '-close' : className; + className = this.state.closing ? className + ' ' + this.props.prefixCls + '-close' : className; - return