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;
+ });
};