Skip to content

Conversation

@paranoidjk
Copy link
Member

No description provided.

@yesmeck
Copy link
Member

yesmeck commented Sep 27, 2017

Add a test.

@paranoidjk
Copy link
Member Author

https://github.com/react-component/m-dialog/blob/master/src/DialogWrap.tsx#L27 rmc-dialog 会在 unmount 的时候尝试关闭 modal, 反而触发 animate 渲染流程。

导致的 bug 是在单页应用,B 页面的 Modal 在返回到 A 页面时候显示出来

@paranoidjk
Copy link
Member Author

cc @zhang740

@coveralls
Copy link

Coverage Status

Coverage remained the same at 70.0% when pulling c830ccb on fix-showProps into 528f278 on master.

@yesmeck
Copy link
Member

yesmeck commented Sep 27, 2017

rmc-dialog 会在 unmount 的时候尝试关闭 modal, 反而触发 animate 渲染流程。

这本来应该是 feature,unmount 的时候也会触发动画。

@paranoidjk
Copy link
Member Author

对,但 showProp 的值此时是 false, 内容不应该渲染出来。

@yesmeck
Copy link
Member

yesmeck commented Sep 27, 2017

https://github.com/react-component/dialog/blob/master/src/DialogWrap.tsx#L48

要在动画结束的时候移除 container。

@yesmeck
Copy link
Member

yesmeck commented Sep 27, 2017

@paranoidjk
Copy link
Member Author

在 rmc-dialog 层面也能修复 @silentcloud 看下

我先写个只用 rc-animate 复现的情况

@silentcloud
Copy link
Member

要在动画结束的时候移除 container。

这个是做了的 https://github.com/react-component/m-dialog/blob/master/src/DialogWrap.tsx#L41

@silentcloud
Copy link
Member

https://github.com/react-component/dialog/blob/master/src/DialogWrap.tsx#L46 这里也要判断 visible。

原来的逻辑,如果直接 component unmount 就 remove 的话 preact 下有问题

@yesmeck
Copy link
Member

yesmeck commented Sep 27, 2017

@silentcloud 意思是 rc-dialog 的做法在 preact 下会有问题吗?

@silentcloud
Copy link
Member

@yesmeck

@coveralls
Copy link

Coverage Status

Coverage increased (+1.3%) to 71.25% when pulling d098f2c on fix-showProps into 528f278 on master.

@zhang740
Copy link
Member

@yesmeck review一下?

</Component>);
});

describe('when initial', () => {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

跟测试用例的流程是一样的

@yesmeck
Copy link
Member

yesmeck commented Sep 28, 2017

感觉是 breaking change。现在 rc-dialog 就需要在 visible=false 的时候也需要渲染的。

@paranoidjk
Copy link
Member Author

那就在 rmc-dialog 层面修复,state 里面记录当前的 visible 状态,componentWillUnmount 的时候不要盲目尝试 renderComponent(false) 条件判断一下 cc @zhang740 @silentcloud

@paranoidjk paranoidjk closed this Sep 28, 2017
@paranoidjk paranoidjk deleted the fix-showProps branch September 28, 2017 10:23
@silentcloud
Copy link
Member

@paranoidjk componentWillUnmount 如果不 render false,preact 下关闭的时候动画就没了

@paranoidjk
Copy link
Member Author

@silentcloud 是条件判断。如果当前就是 visible: false 的,componentWillUnmount 为啥还要 render false?

@silentcloud
Copy link
Member

@paranoidjk 哦,理解错误,这个情况是👌 的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants