Home > Enterprise >  The non-nullable variable
The non-nullable variable

Time:01-17

I'm trying to make the user writing his birth to calculate the age in Flutter. But IDK why it is an error.

import 'dart:io';

class AgeCalculator {
  static int age;
  AgeCalculator(int p) {
    print('Enter your birth year: ');
    int birthYear = p;
    age = DateTime.now().year - birthYear;
    print('your age is $age');
  }
}

int str = 0;

ElevatedButton(
  onPressed: () {
    setState(() {
      AgeCalculator(int.parse(myController.text));
      str = AgeCalculator.age;
    });
  },
),

CodePudding user response:

Why is that a class? That needs to be a method:

int calculateAge(int birthYear) {
  return DateTime.now().year - birthYear;
}

And later using it like this:

ElevatedButton(
  onPressed: () {
    setState(() {
      str = calculateAge(int.parse(myController.text));
    });
  },
),

CodePudding user response:

While we are using null-safety, you need to

  • assign value, static int age = 0;
  • or using late to promise will assign value before read time. static late int age;
  • or make it nullable with ? and do a null check while it. static int? age;

I prefer making nullable data.

Find more about null-safety.

CodePudding user response:

I suppose the error is this line:

  static int age;

You should be using the later version of dart/flutter. As you are declaring age non-nullable you either need to define it as nullable like that:

  static int? age;

or give it some initial value like:

  static int age = 0;

The other way is making it late variable. But it has some danger. If you try to make some action on it without giving value, you get error in runtime:

static late int age;
  • Related