'Getting "Uncaught TypeError: Cannot read properties of undefined (reading 'map')" when using Chartjs inside react axios method

I was trying to create a chart using Chartjs in react. For that I used axios post method to get data from database from server that I created in Nodejs. When I used chartjs in axios I am getting this error "Uncaught TypeError: Cannot read properties of undefined (reading 'map')"

Here is my code:

const [userData, setData] = React.useState([]);
React.useEffect(()=> {
    axios.post("http://localhost:3001/graph",
     {
        username:str
     }).then(response=>{

         Uname = response.data.username;
         exp = response.data.expense;
         inc = response.data.income;
         console.log(inc);
         console.log(exp);
      
        data.push(exp);
        data.push(inc);
         
     });
    setData({    
        labels: title,
        datasets:[
        {
            label: "Expense",
            data: data,
            backgroundColor: ["red"]
        }
        ]
    });
    
    console.log(userData);
})

I am getting empty array in userData. I tried most of the method online but nothing seems to work. Please if anyone can help me here its really imp.

Thank you.



Solution 1:[1]

Its because at first the userData is an empty array and after a while data goes to it and you can use it; one think that you can do is to use an if before defining map like this: {userData && userData.map ...}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ali Navidi