Remove usage of React.findDOMNode() #189
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
As of React 16.6,
ReactDOM.findDOMNode()
is added to list of deprecated API.But even before that, usage of the API has been advised to be prevented.
This PR removes calls to the listed API from
anchored()
HOC mixin, and instead introduces an approach that requires you to manually set refs to both anchor element and wrapped element.The
anchored(Component)
HOC now only accept anHTMLElement
node for theanchor
prop it's taking.Also it now passes an additional
nodeRef
prop to the wrapped component, which is aReact.createRef()
to collect ref to the DOM node that should be positioned to anchor.Example
Configuring wrapped component
setting anchor
The
anchored(Component)
HOC only renders if theanchor
prop is a valid DOM node.So please be sure to render it after the ref to anchor is set.