STRML / react-router-component

Declarative router component for React.
http://strml.viewdocs.io/react-router-component
MIT License
873 stars 94 forks source link

componentWillReceiveProps warning #207

Open TrentonAdams opened 5 years ago

TrentonAdams commented 5 years ago

I have code like this...

const MainContent = () => <Locations>
    <Location path="/" handler={WelcomeContent}/>
    <Location path="/index.html" handler={WelcomeContent}/>
    <Location path="/search.html" handler={SearchContent}/>
</Locations>;

I'm receiving this in my jest testing...

 console.warn node_modules/react-dom/cjs/react-dom.development.js:11494
     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: Locations
STRML commented 4 years ago

Unfortunately this library relies pretty heavily on actions after prop changes, set by environments which set props. I don't have a simple fix for this just yet. We can upgrade to UNSAFE_ for now, but fixing this will require a rethink of the whole lib.