Search code examples
reactjsreact-chartjsreact-functional-component

componentWillMount for react functional component?


For react class component, we have the componentWillMount() lifecycle method, where we can perform tasks before loading the component. Tasks like, a call to backend and use the response to show that data in that frontend.

What if I want the same thing in a functional component? Like I have used react chartJS and for that the data values I want to be retrieved from backend response, and then the chart will populate based on those datas.


Solution

  • componentWillMount is call only one time before initial render. I make a sample code, check it out below

    import React, { useState, useEffect } from "react";
    import "./styles.css";
    
    export default function App() {
      const [mounted, setMounted] = useState(false)
    
      if(!mounted){
        // Code for componentWillMount here
        // This code is called only one time before intial render
      }
    
      useEffect(() =>{
        setMounted(true)
      },[])
    
      return (
        <div className="App">
          
        </div>
      );
    }

    • As you mentioned you want to make an api call, it usually happen in componentDidmount and you can simply use useEffect hook with empty array as dependencies in functional component

    import React, { useState, useEffect } from "react";
    import "./styles.css";
    
    export default function App() {
      const [mounted, setMounted] = useState(false)
    
    
      useEffect(() =>{
        // This is similar to componentDidMount
        // Call back-end api here
      },[])
    
      return (
        <div className="App">
          
        </div>
      );
    }