Maintain rootID for lazily crawled trees
Dan committed
Jun 12, 2019 at 16:38 UTC
f352fe2625bc91e65f563def0b351dd5d915c11c
1 file changed
+8
-3
src/backend/legacy/renderer.js
+8
-3
@@ -370,16 +370,21 @@ export function attach(
370
idToInternalInstanceMap.delete(id);
371
}
372
373
- function crawlAndRecordInitialMounts(id: number, parentID: number) {
373
+ function crawlAndRecordInitialMounts(
374
+ id: number,
375
+ parentID: number,
376
+ rootID: number
377
+ ) {
378
const internalInstance = idToInternalInstanceMap.get(id);
379
380
if (__DEBUG__) {
381
console.group('crawlAndRecordInitialMounts() id:', id);
382
}
383
384
+ internalInstanceToRootIDMap.set(internalInstance, rootID);
385
recordMount(internalInstance, id, parentID);
386
getChildren(internalInstance).forEach(child =>
382
- crawlAndRecordInitialMounts(getID(child), id)
387
+ crawlAndRecordInitialMounts(getID(child), id, rootID)
388
);
389
390
if (__DEBUG__) {
@@ -397,7 +402,7 @@ export function attach(
402
for (let key in roots) {
403
const internalInstance = roots[key];
404
const id = getID(internalInstance);
400
- crawlAndRecordInitialMounts(id, 0);
405
+ crawlAndRecordInitialMounts(id, 0, id);
406
flushPendingEvents(id);
407
}
408
}