diff --git a/packages/react-native-renderer/src/ReactNativeTypes.js b/packages/react-native-renderer/src/ReactNativeTypes.js index 261e1f0b63..1aa11cb3be 100644 --- a/packages/react-native-renderer/src/ReactNativeTypes.js +++ b/packages/react-native-renderer/src/ReactNativeTypes.js @@ -9,7 +9,13 @@ * @flow strict */ -import type {ElementRef, ElementType, MixedElement} from 'react'; +import type { + Component as ReactComponent, + ElementRef, + ElementType, + MixedElement, + RefSetter, +} from 'react'; // $FlowFixMe[nonstrict-import] TODO(@rubennorte) import {type PublicRootInstance} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface'; @@ -135,7 +141,7 @@ declare const ensureNativeMethodsAreSynced: NativeMethods; export type HostInstance = NativeMethods; export type HostComponent = component( - ref: React$RefSetter, + ref: RefSetter, ...Config ); @@ -188,7 +194,8 @@ export type RenderRootOptions = { errorInfo: { +componentStack?: ?string, // $FlowFixMe[unclear-type] unknown props and state. - +errorBoundary?: ?React$Component, + // $FlowFixMe[value-as-type] Component in react repo is any-typed, but it will be well typed externally. + +errorBoundary?: ?ReactComponent, }, ) => void, onRecoverableError?: ( diff --git a/packages/react/index.js b/packages/react/index.js index af4cd4b0c1..92e1cf181e 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -17,6 +17,7 @@ export type Key = React$Key; export type Node = React$Node; export type Context = React$Context; export type Portal = React$Portal; +export type RefSetter<-I> = React$RefSetter; export type ElementProps = React$ElementProps; export type ElementConfig = React$ElementConfig; export type ElementRef = React$ElementRef;