Tengo esta función que devuelve el valor "SharedPreference" almacenado en ella.
Future<bool> getLoginStatus() async {
final prefs = await SharedPreferences.getInstance();
final loggedInStatus = prefs.getBool("loggedInStatus");
if (loggedInStatus == null) {
return false;
}
return loggedInStatus;
}
La función anterior está en la clase llamada "Constants.dart". Cuando hago la prueba de extracción de valor de la función "getLoginStatus ()" mediante una simple impresión en diferentes clases.
print("Login status : " + Constants().getLoginStatus().toString());
Me da a continuación como salida. ¿Por qué "Instancia de 'Futuro'"? ¿Por qué no simple o verdadero o falso?
I/flutter (19683): Login status : Instance of 'Future<bool>'
3 respuestas
Como su getLoginStatus () es asíncrono y devolverá un valor bool en el futuro. Entonces, para obtener el valor que tiene que esperar para que el proceso lo devuelva.
Entonces el Código correcto para recuperar el valor sería:
bool loggedInStatus = await Constants().getLoginStatus();
print(loggedInStatus);
Puedes obtener datos usando waitit.
var data = await Constants().getLoginStatus();
print(data);
getLoginStatus().then((val){ print("Login status : $val"});
La función then debería usarse con Futures para acceder al valor devuelto por un futuro.
Preguntas relacionadas
Nuevas preguntas
flutter
Flutter es un kit de desarrollo de software de interfaz de usuario de código abierto creado por Google. Se utiliza para desarrollar aplicaciones para Android, iOS, Linux, Mac, Windows, Google Fuchsia y la web desde una única base de código. Las aplicaciones de Flutter están escritas en el lenguaje Dart.