diff --git a/packages/shared/ReactTypes.js b/packages/shared/ReactTypes.js index 74c255577dbd7..d73a427246d24 100644 --- a/packages/shared/ReactTypes.js +++ b/packages/shared/ReactTypes.js @@ -59,6 +59,7 @@ export type ReactContext = { $$typeof: Symbol | number, Consumer: ReactContext, Provider: ReactProviderType, + displayName?: string; _calculateChangedBits: ((a: T, b: T) => number) | null, _currentValue: T, _currentValue2: T, diff --git a/packages/shared/getComponentName.js b/packages/shared/getComponentName.js index a1b5223b7aefa..8d0ce1122904e 100644 --- a/packages/shared/getComponentName.js +++ b/packages/shared/getComponentName.js @@ -24,7 +24,7 @@ import { REACT_CHUNK_TYPE, } from 'shared/ReactSymbols'; import {refineResolvedLazyComponent} from 'shared/ReactLazyComponent'; -import type {ReactContext} from 'shared/ReactTypes'; +import type {ReactContext,ReactProviderType} from 'shared/ReactTypes'; function getWrappedName( outerType: mixed, @@ -78,9 +78,11 @@ function getComponentName(type: mixed): string | null { if (typeof type === 'object') { switch (type.$$typeof) { case REACT_CONTEXT_TYPE: - return getContextName(type) + '.Consumer'; + const context: ReactContext = (type: any); + return getContextName(context) + '.Consumer'; case REACT_PROVIDER_TYPE: - return getContextName(type._context) + '.Provider'; + const provider: ReactProviderType = (type: any); + return getContextName(provider._context) + '.Provider'; case REACT_FORWARD_REF_TYPE: return getWrappedName(type, type.render, 'ForwardRef'); case REACT_MEMO_TYPE: