diff --git a/src/renderers/shared/fiber/ReactDebugCurrentFiber.js b/src/renderers/shared/fiber/ReactDebugCurrentFiber.js index d857e5f2dd..6969cec658 100644 --- a/src/renderers/shared/fiber/ReactDebugCurrentFiber.js +++ b/src/renderers/shared/fiber/ReactDebugCurrentFiber.js @@ -14,6 +14,8 @@ import type { Fiber } from 'ReactFiber'; +type LifeCyclePhase = 'render' | 'getChildContext'; + if (__DEV__) { var getComponentName = require('getComponentName'); var { getStackAddendumByWorkInProgressFiber } = require('ReactComponentTreeHook'); @@ -47,6 +49,8 @@ function getCurrentFiberStackAddendum() : string | null { var ReactDebugCurrentFiber = { current: (null : Fiber | null), + phase: (null : LifeCyclePhase | null), + getCurrentFiberOwnerName, getCurrentFiberStackAddendum, }; diff --git a/src/renderers/shared/fiber/ReactFiberBeginWork.js b/src/renderers/shared/fiber/ReactFiberBeginWork.js index 7b6d8dc78d..b88be76bf0 100644 --- a/src/renderers/shared/fiber/ReactFiberBeginWork.js +++ b/src/renderers/shared/fiber/ReactFiberBeginWork.js @@ -66,7 +66,6 @@ var invariant = require('invariant'); if (__DEV__) { var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber'); - var ReactDebugLifeCycle = require('ReactDebugLifeCycle'); var warning = require('warning'); var warnedAboutStatelessRefs = {}; } @@ -231,11 +230,9 @@ module.exports = function( if (__DEV__) { ReactCurrentOwner.current = workInProgress; - ReactDebugLifeCycle.current = workInProgress; - ReactDebugLifeCycle.phase = 'render'; + ReactDebugCurrentFiber.phase = 'render'; nextChildren = fn(nextProps, context); - ReactDebugLifeCycle.current = null; - ReactDebugLifeCycle.phase = null; + ReactDebugCurrentFiber.phase = null; } else { nextChildren = fn(nextProps, context); } @@ -286,11 +283,9 @@ module.exports = function( ReactCurrentOwner.current = workInProgress; let nextChildren; if (__DEV__) { - ReactDebugLifeCycle.current = workInProgress; - ReactDebugLifeCycle.phase = 'render'; + ReactDebugCurrentFiber.phase = 'render'; nextChildren = instance.render(); - ReactDebugLifeCycle.current = null; - ReactDebugLifeCycle.phase = null; + ReactDebugCurrentFiber.phase = null; } else { nextChildren = instance.render(); } diff --git a/src/renderers/shared/fiber/ReactFiberContext.js b/src/renderers/shared/fiber/ReactFiberContext.js index f29b96378a..dbb7a43bd9 100644 --- a/src/renderers/shared/fiber/ReactFiberContext.js +++ b/src/renderers/shared/fiber/ReactFiberContext.js @@ -35,7 +35,7 @@ const { if (__DEV__) { var checkReactTypeSpec = require('checkReactTypeSpec'); var ReactDebugCurrentFrame = require('ReactDebugCurrentFrame'); - var ReactDebugLifeCycle = require('ReactDebugLifeCycle'); + var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber'); var warnedAboutMissingGetChildContext = {}; } @@ -171,11 +171,9 @@ function processChildContext(fiber : Fiber, parentContext : Object, isReconcilin let childContext; if (__DEV__) { - ReactDebugLifeCycle.current = fiber; - ReactDebugLifeCycle.phase = 'getChildContext'; + ReactDebugCurrentFiber.phase = 'getChildContext'; childContext = instance.getChildContext(); - ReactDebugLifeCycle.current = null; - ReactDebugLifeCycle.phase = null; + ReactDebugCurrentFiber.phase = null; } else { childContext = instance.getChildContext(); } diff --git a/src/renderers/shared/fiber/ReactFiberReconciler.js b/src/renderers/shared/fiber/ReactFiberReconciler.js index ede6832440..3f910aa1d9 100644 --- a/src/renderers/shared/fiber/ReactFiberReconciler.js +++ b/src/renderers/shared/fiber/ReactFiberReconciler.js @@ -32,8 +32,7 @@ var ReactFiberScheduler = require('ReactFiberScheduler'); if (__DEV__) { var warning = require('warning'); var ReactFiberInstrumentation = require('ReactFiberInstrumentation'); - var warning = require('warning'); - var ReactDebugLifeCycle = require('ReactDebugLifeCycle'); + var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber'); var { getComponentName } = require('ReactFiberTreeReflection'); } @@ -148,14 +147,14 @@ module.exports = function( function scheduleTopLevelUpdate(current : Fiber, element : ReactNodeList, callback : ?Function) { if (__DEV__) { - if (ReactDebugLifeCycle.current !== null) { + if (ReactDebugCurrentFiber.current !== null) { warning( - ReactDebugLifeCycle.phase !== 'render', + ReactDebugCurrentFiber.phase !== 'render', 'Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\n\n' + 'Check the render method of %s.', - getComponentName(ReactDebugLifeCycle.current) + getComponentName(ReactDebugCurrentFiber.current) ); } } diff --git a/src/renderers/shared/fiber/ReactFiberScheduler.js b/src/renderers/shared/fiber/ReactFiberScheduler.js index 08f08c9fe5..f0b8601da3 100644 --- a/src/renderers/shared/fiber/ReactFiberScheduler.js +++ b/src/renderers/shared/fiber/ReactFiberScheduler.js @@ -90,7 +90,6 @@ if (__DEV__) { var warning = require('warning'); var ReactFiberInstrumentation = require('ReactFiberInstrumentation'); var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber'); - var ReactDebugLifeCycle = require('ReactDebugLifeCycle'); var warnAboutUpdateOnUnmounted = function(instance : ReactClass) { const ctor = instance.constructor; @@ -105,7 +104,7 @@ if (__DEV__) { }; var warnAboutInvalidUpdates = function(instance : ReactClass) { - switch (ReactDebugLifeCycle.phase) { + switch (ReactDebugCurrentFiber.phase) { case 'getChildContext': warning( false, @@ -880,8 +879,7 @@ module.exports = function(config : HostConfig