_CastError Null check operator used on a null value flutter

Am a bit lost and been scratching my head for a couple of days, I am getting this error

Null check operator used on a null value

On this piece of code

 percent = (scores[section] ?? 0 / totalPerSection[section]!) * 100;

the section inside here (scores[section] ?? 0 is throwing a null pointer, but the value has data on the code above. Here is a more detailed code

   num getSectionScore(int section) {
    log("getSectionScore($section) called");
    var data = scores[section] ?? 0;
    log("getSectionScoredata($data) called");
    return scores[section] ?? 0;
  }
  num getSectionPtsPoss(int section) {
    return totalPerSection[section]!;
  }
  String getPercentage(int section) {
    log("getPercentage($section) called");
    num percent = 0;
    try {
      percent = (scores[section] ?? 0 / totalPerSection[section]!) * 100;
    } on NoSuchMethodError catch (_) { }

    if (percent % 1 == 0.0) { // if number is an int, return it as is
      return percent.truncate().toString();
    } else if (percent % 10 == 0.0) {  // else if num comes out to an even tenth (ex 0.1), return with 1 decimal
      return percent.toStringAsFixed(1);
    } else {
      return percent.toStringAsFixed(2);
    }
  }

This the function am using to get the sections and scores. When I do a console log on this bit here

var data = scores[section] ?? 0;
        log("getSectionScoredata($data) called");

no null pointer is getting thrown, as when the scores[section] is found to be null, 0 is being passed. Why am I getting the error on this line percent = (scores[section] ?? 0 and I am passing a default value if the section is found to be null .

Any help on what am doing wrong is appreciated.

>Solution :

It throw that error on the line

percent = (scores[section] ?? 0 / totalPerSection[section]!) * 100;

because totalPerSection[section]! instead of scores[section] ?? 0 like you think

You should check totalPerSection[section] value, i’m pretty sure this is null

Leave a Reply