From c210e75ff3effbe9006f5ed533a86b7a3d25be47 Mon Sep 17 00:00:00 2001 From: Jason Quense Date: Fri, 5 Jan 2018 09:15:12 -0500 Subject: [PATCH 1/2] pass host context to finalizeInitialChildren --- packages/react-reconciler/src/ReactFiberCompleteWork.js | 3 +++ packages/react-reconciler/src/ReactFiberReconciler.js | 1 + 2 files changed, 4 insertions(+) diff --git a/packages/react-reconciler/src/ReactFiberCompleteWork.js b/packages/react-reconciler/src/ReactFiberCompleteWork.js index 40bb9ea4f46..f1e66bd0178 100644 --- a/packages/react-reconciler/src/ReactFiberCompleteWork.js +++ b/packages/react-reconciler/src/ReactFiberCompleteWork.js @@ -309,12 +309,14 @@ export default function( childrenUnchanged, recyclableInstance, ); + const currentHostContext = getHostContext(); if ( finalizeInitialChildren( newInstance, type, newProps, rootContainerInstance, + currentHostContext, ) ) { markUpdate(workInProgress); @@ -506,6 +508,7 @@ export default function( type, newProps, rootContainerInstance, + currentHostContext, ) ) { markUpdate(workInProgress); diff --git a/packages/react-reconciler/src/ReactFiberReconciler.js b/packages/react-reconciler/src/ReactFiberReconciler.js index ef1eb8cf008..fad7f53d770 100644 --- a/packages/react-reconciler/src/ReactFiberReconciler.js +++ b/packages/react-reconciler/src/ReactFiberReconciler.js @@ -65,6 +65,7 @@ export type HostConfig = { type: T, props: P, rootContainerInstance: C, + hostContext: CX, ): boolean, prepareUpdate( From a0f39b7b9c660c91176466916455e4c771c1078f Mon Sep 17 00:00:00 2001 From: Jason Quense Date: Fri, 5 Jan 2018 10:33:23 -0500 Subject: [PATCH 2/2] don't retrieve context an extra time --- packages/react-reconciler/src/ReactFiberCompleteWork.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/react-reconciler/src/ReactFiberCompleteWork.js b/packages/react-reconciler/src/ReactFiberCompleteWork.js index f1e66bd0178..123dee84ea2 100644 --- a/packages/react-reconciler/src/ReactFiberCompleteWork.js +++ b/packages/react-reconciler/src/ReactFiberCompleteWork.js @@ -195,6 +195,7 @@ export default function( oldProps: P, newProps: P, rootContainerInstance: C, + currentHostContext: CX, ) { // TODO: Type this specific to this type of component. workInProgress.updateQueue = (updatePayload: any); @@ -288,6 +289,7 @@ export default function( oldProps: P, newProps: P, rootContainerInstance: C, + currentHostContext: CX, ) { // If there are no effects associated with this node, then none of our children had any updates. // This guarantees that we can reuse all of them. @@ -309,7 +311,6 @@ export default function( childrenUnchanged, recyclableInstance, ); - const currentHostContext = getHostContext(); if ( finalizeInitialChildren( newInstance, @@ -371,6 +372,7 @@ export default function( oldProps: P, newProps: P, rootContainerInstance: C, + currentHostContext: CX, ) { // Noop }; @@ -452,6 +454,7 @@ export default function( oldProps, newProps, rootContainerInstance, + currentHostContext, ); if (current.ref !== workInProgress.ref) {