Ошибка: метод '> =' был вызван на нуль - PullRequest
0 голосов
/ 03 апреля 2020

Я получаю ошибку в этом коде, пожалуйста, узнайте. У меня есть ошибка при запуске этого метода, но я не могу понять, что хочет сказать эта ошибка. Эта ошибка вылетает из моего приложения:

import 'dart:math';
class Brain{
Brain({this.height,this.weight});
    final  int height;
    final  int weight;
double _bmi;
String calculatebmi(){
  _bmi = weight / pow( height/100, 2);
  return _bmi.toStringAsFixed(1);
}

String getresult(){
  if (_bmi >= 25){
    return 'OVERWEIGHT'; 
  }
  else if (_bmi > 18.5 ){
    return 'NORAML';
  }
  else{
    return 'UNDERWEIGHT';
  }
}



error=>
I/flutter (29335): The following NoSuchMethodError was thrown building Builder(dirty):
I/flutter (29335): The method '>=' was called on null.
I/flutter (29335): Receiver: null
I/flutter (29335): Tried calling: >=(25)
I/flutter (29335):
I/flutter (29335): The relevant error-causing widget was:

1 Ответ

0 голосов
/ 03 апреля 2020

Вы никогда не устанавливаете _bmi в значение при создании класса, поэтому, если вы не вызовете функцию calculatebmi() перед вызовом getResult(), она выдаст эту ошибку, поскольку вы не можете выполнить операцию сравнения, например >=, для нулевое значение в дротике.

Попробуйте изменить инициализацию _bmi на double _bmi = 0; или измените конструктор, чтобы он устанавливался при создании с вашим расчетом weight / pow( height/100, 2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...