onReaderLoad = (e) => {
    var obj =JSON.parse(e.target.result)
    this.setState(prevState => ({
      datasource: [...prevState.datasource, obj]
    }))
  }
  ReadFiles = () => {
    let files = this.state.json_files;
    for (let i of files){
      var reader = new FileReader();
      reader.onload = this.onReaderLoad;
      reader.readAsText(i);
    }
    console.log(this.state.datasource)
  }
  getfolder = (e) => {
    var files = e.target.files;
    this.setState({
      json_files: files
    }, () => this.ReadFiles())    
  }
                  <input type="file" onChange={this.getfolder} multiple accept=".json" />
Here i am sharing my code.
What i am trying to do is i am reading all the json files from user input and looping them and storing it to react state. Then inside ReadFiles() function i am logging the state data. But it is always coming empty data.
I think it calling first and then going to the loop.
I wants to log the datasource data from state inside ReadFiles() function after all Looping operation is done
Is there any way to do that ?
Please have a look
 
    