Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

97
Views
React componentDidMount setState but return undefined

I can get list with get axios.get method. then ı can use setState and it works flawlessly. but the return is not true , its return undefined console.log(result) => undefined . How can ı check if setState work fine return true or return false ?

getList = async () => {
  await axios.get("http://localhost:5000/list").then((response) => {
    this.setState(
      {
        copy: response.data.list,
      },
      () => {
        return true;
      },
    );
  });
};

componentDidMount = () => {
  this.getList().then((result) => {
    console.log(result);
  });
};
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Your return true statement is in setState's post-set callback. It won't be propagated to the promise that's returned from getList; indeed, you return nothing from that function (you don't even return the Axios promise; if you did return that, you would get the response logged in your console.log, but it would be logged before the setState callback finished), so you get undefined in the console.log.

If you need getList to return a promise that resolves to true once the state has been set, you'll need

getList = () => {
  return new Promise((resolve) =>
    axios.get("http://localhost:5000/list").then((response) =>
      this.setState(
        {
          copy: response.data.list,
        },
        () => resolve(true),
      ),
    ),
  );
};

componentDidMount = () => {
  this.getList().then((result) => {
    console.log(result);
  });
};
about 4 years ago · Juan Pablo Isaza Report

0

The second argument to set state can return true but, it's not going anywhere. You need to somehow use it, example:

const response = await axios.get("http://localhost:5000/list")

return new Promise((resolve) => {
  this.setState({
    copy : response.data.list
  }, () => {
    resolve(true);
  })
})

now the chain will work because you are resolving the promise chain with true instead of returning it from the callback function

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!