'How to initialize and load data when moving to a screen in flutter?

I want to populate my lists by making API calls when moving to a screen in flutter. I tried calling the async function in the init state however it takes time to load the data of course, and that leads to a null error.

I tried using a future builder in my view. However, I want to make multiple API calls and I don't think that is possible with one future builder. And I would like to avoid having different future builders for each list. Is there a neat way to do this?

Also is it advisable to load data and pass it on from the previous screen.. since I would like to avoid the loading time?

enter image description here

current code

FutureBuilder(
          future: getAllData,
          initialData: [],
          builder: (context, snapshot) {
            if (!snapshot.hasData || snapshot.data.isEmpty) return Center(child: CircularProgressIndicator(valueColor: new AlwaysStoppedAnimation<Color>(Colors.red),));
            else {
              return createNewTaskView(context, snapshot.data);
            }
          }),

init method


  @override
  void initState() {

    
    this.getAllData = getSocieties();

  }


Sources

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

Source: Stack Overflow

Solution Source