Skip to content

[PF3] Overlay component from react-bootstrap uses deprecated lifecycle method, causing warnings in React 16.9.x and will break in React 17 #3010

Description

@mturley

For our PF3 components, we depend on a legacy version of react-bootstrap (v0.32.4, which supports bootstrap v3: https://5c507d49471426000887a6a7--react-bootstrap.netlify.com/). They don't actively develop on that version anymore, since that library has moved on to bootstrap v4 and we can't upgrade it without breaking all of our PF3 styles.

That legacy version of react-bootstrap is now causing deprecation warnings in some of its components, such as Overlay:

Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.

* Move data fetching code or side effects to componentDidUpdate.
* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Please update the following components: Overlay

I'm opening this issue because this warning is showing up downstream in ManageIQ/manageiq-v2v#1037.

There is an issue open on react-bootstrap to release a fixed version of their legacy branch, which has been open for 22 days: react-bootstrap/react-bootstrap#4398

The deprecation warnings appear when using React 16.9.x, but the deprecated methods will be removed in React 17. Before any PF3-react consumers can upgrade to React 17, we will either need to see that fix released and upgrade our copy of react-bootstrap, or we'll need to copy any affected components in-house and fix them ourselves.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions