I have a function which is technically a React Functional Component:

export default function Daw() { return ( <> <div>Hello world.</div> </> ); } 

Of course, my ordinary function cannot have the ReactJS method of componentDidMount(). Since it is not a class which extends React.PureComponent.

I'm using this function inside a ReactJS web app.

export default function Daw() { componentDidMount() { // ** Cannot use this ReactJS method!? } return ( <> <div>Hello world.</div> </> ); } 

Question

How can I possibly call componentDidMount() method of ReactJS inside my ordinary function? Is there a way to do it, without converting my function to a class which extends React.PureComponent? Is it possible?

4 Answers

First import useEffect from react

import { useEffect } from "react";

Then use useEffect with an empty dependency array,it is same as componentDidMount()

useEffect(() => { console.log("Mounted"); },[]);

Refer react official documentation for learning all lifecycle methods using useEffect hook:-

You're going to need React Hooks! All life-cycle methods we were doing in class components are available in functional components too via React Hooks, even in a better way. Read more about React hooks here:

And in this case, the equivalent of componentDidMount is this:

import { useEffect } from 'react' export default function Daw() { useEffect(() => { // Code here will run just like componentDidMount }, []) return ( <> <div>Hello world.</div> </> ) } 

You can also learn about Effects in React by reading my article: A Beginner’s Guide to Effects in React

You cannot use componentDidMount() (class lifecycle methods) in React functional components. Instead you can use useEffect hook to perform the same operation. Like this:

useEffect(() => { }, []); 

Check here for more info - Similar Question

yes, you can use useEffect hook. useEffect has the following abilities of class methods .i.e. componentDidMount, componentDidUpdate and componentWillUnmoun.

refer following info from official doc:

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy