Merge pull request #1247 from pygy/cleanup-on-unmount

Better cleanup when unmounting
This commit is contained in:
Leo Horie 2016-08-17 09:24:30 -04:00 committed by GitHub
commit f67f1efd71

View file

@ -2,24 +2,23 @@
var Vnode = require("../render/vnode") var Vnode = require("../render/vnode")
var autoredraw = require("../api/autoredraw") var autoredraw = require("../api/autoredraw")
var dummy = {view: function() {}}
module.exports = function(renderer, pubsub) { module.exports = function(renderer, pubsub) {
return function(root, component) { return function(root, component) {
pubsub.unsubscribe(root.redraw) pubsub.unsubscribe(root.redraw)
if (component === null) {
renderer.render(root, [])
delete root.redraw
return
}
var run = autoredraw(root, renderer, pubsub, function() { var run = autoredraw(root, renderer, pubsub, function() {
renderer.render( renderer.render(
root, root,
Vnode(component === null ? dummy : component, undefined, undefined, undefined, undefined, undefined) Vnode(component, undefined, undefined, undefined, undefined, undefined)
) )
}) })
run() run()
if (component === null) {
pubsub.unsubscribe(root.redraw)
delete root.redraw
}
} }
} }