2

I'm receiving the following error while trying to add elements from my for loop to my List...

NoSuchMethodError: The method 'addAll' was called on null.
    Receiver: null
    Tried calling: addAll("LrWr826cd3Y")

Here is my code...

Future getData() async {
    //Map videoId;

    String url = 'https://Youtube API';
    var httpClient = createHttpClient();
    var response = await httpClient.read(url);
    Map data = JSON.decode(response);
    var videos = data['items']; //returns a List of Maps

    List searchTitles;
    List searchIds;
    List searchImages;

    for (var items in videos) {
      //iterate over the list
      Map myMap = items; //store each map
      final video = (myMap['id'] as Map);
      print(video['videoId']);
      searchIds.addAll(video['videoId']);
      final details = (myMap['snippet'] as Map);
      final videoimage = (details['thumbnails'] as Map);
      final medium = (videoimage['medium'] as Map);

    }

    setState(() { });

    if (!mounted) return;
  }

print(video['videoId']); successfully lists the 3 Youtube video ids as Strings. searchIds.addAll(video['videoId']); throws the error. I've tried both searchIds.add and searchIds.addAll. Where am I going wrong?

I would like to eventually push these lists to my List class here..

class CardInfo {
  //Constructor
  List id;
  List title;
  List video;

  CardInfo.fromJson(List json) {
    this.id;
    this.title;
    this.video;
  }
}

1 Answer 1

13

You are not instantiating your searchIds object. add this

List searchIds = new ArrayList<>();

(Or)

List searchIds = new List(); 
Sign up to request clarification or add additional context in comments.

4 Comments

This is how I got it to work for Flutter... List searchIds = new List();
I see your problem is fixed. Good job.
List searchIds = new List(); this is worked for me.
You can also use List searchIds = [];

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.