Skip to content

ReactIs.typeOf for non-elements #12882

Closed
Closed
@mridgway

Description

@mridgway

What is the current behavior?

ReactIs.typeOf currently only works for element types, it does not allow you to pass a raw Component or ForwardRef to know the type.

The use case for this is in hoist-non-react-statics I now need a special cases for ForwardRefs. To do this, I will need to know the type of the source and target components, but currently I would need to turn them into elements first.

All of the ReactIs.is* functions also have this issue since they use the typeOf function internally.

const ForwardComponent = React.forwardRef(() => {});

ReactIs.typeOf(ForwardComponent); // undefined
ReactIs.typeOf(React.createElement(ForwardComponent)); // Symbol(react.forward_ref)

What is the expected behavior?

Ideally I could pass in just the Component and get the type of it:

ReactIs.typeOf(ForwardComponent) // Symbol(react.forward_ref)

Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?

ReactIs@16.3.2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions