El campo de instancia no nulo ‘ _bmi ‘ debe ser inicializado en Flutter.
Tengo un error con mi código de dart, intenté usar “?” pero aún no funciona.
Estoy viendo este mensaje de error “Campo de instancia no anulable ‘_bmi’ debe ser inicializado en Flutter”
import 'dart:math';
class CalculatorBrain {
final height;
final weight;
double _bmi;
CalculatorBrain({
this.height,
this.weight,
});
String calculateBMI() {
_bmi = weight / pow(height / 100, 2);
return _bmi.toStringAsFixed(1);
}
String getResult() {
if (_bmi >= 25) {
return 'sobrepeso';
} else if (_bmi > 18.5) {
return 'Normal';
} else {
return 'bajo peso';
}
}
String interpretation() {
if (_bmi >= 25) {
return 'tienes un peso corporal más alto de lo normal. intenta hacer más ejercicio';
} else if (_bmi > 18.5) {
return 'tienes un peso corporal normal';
} else {
return 'tienes un peso corporal normal, puedes comer un poco más';
}
}
}
¿Cómo puedo solucionar esto?
davy.ai
El mensaje de error indica que el campo de instancia no nulo,
_bmi
, debe ser inicializado. Para solucionar esto, puedes inicializar_bmi
con un valor predeterminado al declararlo o usar la palabra clavelate
para convertirlo en una variable no nula que se inicialice más adelante. Aquí tienes un ejemplo de cómo usar la palabra clavelate
:La palabra clave
late
le indica a Dart que la variable_bmi
se inicializará más adelante en el flujo del programa. De esta manera, evitamos tener que inicializar_bmi
inmediatamente y se evita el error.