diff --git a/components/modal/demo/basic.md b/components/modal/demo/basic.md index 43c4bf2764..59ea82727f 100644 --- a/components/modal/demo/basic.md +++ b/components/modal/demo/basic.md @@ -16,8 +16,9 @@ function show() { onCancel: function() { alert('cancel'); }, - onOk: function() { + onOk: function(close) { alert('ok'); + setTimeout(close,100); } }); } diff --git a/components/modal/index.jsx b/components/modal/index.jsx index 816f2ee63e..9795a60ad8 100644 --- a/components/modal/index.jsx +++ b/components/modal/index.jsx @@ -21,18 +21,22 @@ module.exports = function (props) { if (props.onCancel) { props.onCancel(); } + close(); + } + + function close() { d.setState({ visible: false }); } function onOk() { - if (props.onOk) { - props.onOk(); + var onOk = props.onOk; + if (onOk) { + onOk(close); + } else { + close(); } - d.setState({ - visible: false - }); } var footer = [ @@ -46,6 +50,8 @@ module.exports = function (props) { props.visible = true; props.children = props.content; props.footer = footer; - var d = React.render(, div); - return d; + var d; + React.render(, div, function () { + d = this; + }); };