-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
render 及 destory 方法是否应该支持多次调用? #50
Comments
我本来也想这么实现的,但过程中有点问题 aspect 会封装一下原方法,生成的新方法在 this 上,但是调用 destroy 时候会把 this 上面的都删除 (base 的处理)。也就意味着第二次调用 destroy 的时候,aspect 已经没有了。 第一次调 destroy
第二次调 destroy
|
考虑下在 除了这种情况外, |
想到两种极端的做法
|
又想了个办法,在第一次调用 destroy 后,生成一个空的 destroy,这样不会报错也不会多执行。 |
用 aspect 还是有问题,destroy 执行的时候是会把所有事件清除的,第二次就没用了。 看来上面的这种方式最简单 |
这个不错,简单直接呀 |
@popomore 在这个方法里加上 另一个讨论,属于 render 和 destroy 的生命周期的
|
有 render 调用多次的场景么,很多场景是误用,应该尽量避免的。 |
今天又有同学问我render多次调用的问题(在widget的派生类里没有做保护,又误调用了多次render) 同样的2个生命周期的方法,render和destory,却 没有相同的处理逻辑_。 @lizzie 看看是否要解决?只是一个提议, 每次 override render的时候都得小心翼翼的,不如 destory 那么爽 |
RT,个人觉得
render
和destory
均为 widget 生命周期的特殊方法,不应该支持多次调用所以 用 before/after 来限制调用更加适合,也不怕 方法被 override 了
The text was updated successfully, but these errors were encountered: