diff --git a/src/renderers/shared/fiber/ReactFiberScheduler.js b/src/renderers/shared/fiber/ReactFiberScheduler.js index 1118e65b44..99c8682a17 100644 --- a/src/renderers/shared/fiber/ReactFiberScheduler.js +++ b/src/renderers/shared/fiber/ReactFiberScheduler.js @@ -38,6 +38,10 @@ var { Deletion, } = require('ReactTypeOfSideEffect'); +var { + HostContainer, +} = require('ReactTypeOfWork'); + var timeHeuristicForUnitOfWork = 1; module.exports = function(config : HostConfig) { @@ -399,14 +403,14 @@ module.exports = function(config : HostConfig) { fiber.alternate.pendingWorkPriority = priorityLevel; } } - // Duck type root - if (fiber.stateNode && fiber.stateNode.containerInfo) { - const root : FiberRoot = (fiber.stateNode : any); - scheduleDeferredWork(root, priorityLevel); - return; - } if (!fiber.return) { - throw new Error('No root!'); + if (fiber.tag === HostContainer) { + const root : FiberRoot = (fiber.stateNode : any); + scheduleDeferredWork(root, priorityLevel); + return; + } else { + throw new Error('Invalid root'); + } } fiber = fiber.return; }