Browse Source

routing breaks when we click same link twice #422

pull/4023/head
Michael Shanks 6 years ago
parent
commit
9424cbb615
  1. 4
      packages/client/src/render/attachChildren.js
  2. 4
      packages/client/src/render/prepareRenderComponent.js

4
packages/client/src/render/attachChildren.js

@ -99,7 +99,9 @@ const areTreeNodesEqual = (children1, children2) => {
let isEqual = false
for (let i = 0; i < children1.length; i++) {
isEqual = deepEqual(children1[i].context, children2[i].context)
isEqual =
deepEqual(children1[i].context, children2[i].context) &&
areTreeNodesEqual(children1[i].children, children2[i].children)
if (!isEqual) return false
if (isScreenSlot(children1[i].parentNode.props._component)) {
isEqual = deepEqual(children1[i].props, children2[i].props)

4
packages/client/src/render/prepareRenderComponent.js

@ -78,13 +78,13 @@ export const createTreeNode = () => ({
get destroy() {
const node = this
return () => {
if (node.unsubscribe) node.unsubscribe()
if (node.component && node.component.$destroy) node.component.$destroy()
if (node.children) {
for (let child of node.children) {
child.destroy()
}
}
if (node.unsubscribe) node.unsubscribe()
if (node.component && node.component.$destroy) node.component.$destroy()
for (let onDestroyItem of node.onDestroy) {
onDestroyItem()
}

Loading…
Cancel
Save