0

Iam trying to store array of users in state. After setting users in array, this.state.users returns undefined.

First log:

(18) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]

Second log:

undefined

function

$.ajax(
      {
        url:url,
        cache:false,
        success: function(data){
          console.log(data.employees);
          this.setState({users:data.employees, employeeId: data.Id,firstName:data.firstName,lastName:data.lastName,email: data.email, trialPeriod: data.trialPeriod,
            dayOfStart: data.dayOfStart, endOfcontract: data.endOfcontract,employmentType:data.employmentType, salary: data.salary, phoneNumber: data.phoneNumber,employerId: data.employerId});
          console.log(this.state.users);
        }.bind(this),
        error: function(xhr, status, err){
            console.log(err);
        }
      });

This

kostik
  • 639
  • 2
  • 10
  • 25

1 Answers1

0

You have to use the setState callback function.

$.ajax(
      {
        url:url,
        cache:false,
        success: function(data){
          console.log(data.employees);
          this.setState({users:data.employees, employeeId: data.Id,firstName:data.firstName,lastName:data.lastName,email: data.email, trialPeriod: data.trialPeriod,
            dayOfStart: data.dayOfStart, endOfcontract: data.endOfcontract,employmentType:data.employmentType, salary: data.salary, phoneNumber: data.phoneNumber,employerId: data.employerId},
            ()=>{
              console.log(this.state.users);
            });
        }.bind(this),
        error: function(xhr, status, err){
            console.log(err);
        }
      });
benjamin Rampon
  • 1,316
  • 11
  • 18