-
-
Save Klerith/8f6c75db4fb0696f6cdd5852b377b1e1 to your computer and use it in GitHub Desktop.
import 'package:shared_preferences/shared_preferences.dart'; | |
/* | |
Recordar instalar el paquete de: | |
shared_preferences: | |
Inicializar en el main | |
final prefs = new PreferenciasUsuario(); | |
await prefs.initPrefs(); | |
Recuerden que el main() debe de ser async {... | |
*/ | |
class PreferenciasUsuario { | |
static final PreferenciasUsuario _instancia = new PreferenciasUsuario._internal(); | |
factory PreferenciasUsuario() { | |
return _instancia; | |
} | |
PreferenciasUsuario._internal(); | |
SharedPreferences _prefs; | |
initPrefs() async { | |
this._prefs = await SharedPreferences.getInstance(); | |
} | |
// GET y SET del nombre | |
get nombre { | |
return _prefs.getString('nombre') ?? ''; | |
} | |
set nombre( String value ) { | |
_prefs.setString('nombre', value); | |
} | |
// GET y SET de la última página | |
get ultimaPagina { | |
return _prefs.getString('ultimaPagina') ?? 'login'; | |
} | |
set ultimaPagina( String value ) { | |
_prefs.setString('ultimaPagina', value); | |
} | |
} | |
Usando null-safety me marca error en la siguiente linea:
GlobalPreferences._internal();
Error:
_Non-nullable instance field 'globalPreferences' must be initialized. Try adding an initializer expression, or add a field initializer in this constructor, or mark it 'late'.dartnot_initialized_non_nullable_instance_fieldAgradezco su ayuda :c
Si pones late funciona:
`late SharedPreferences _prefs;
initPrefs() async {
this._prefs = await SharedPreferences.getInstance();
}`
@AyrtonAldayr si miras en mi repo esta la app fincional con null safety
Usando flutter dos me funcionaba en la version sin centralizar las shared_preferences, pero al pasarlo todo a una clase me da el siguiente error
Como se ve he tenido que poner la palabre clave late a la instancia de SharePreferences ¿Alguna posible solución?
Hola compañeros consultando el flutter el error es por la actualizacion a flutter 2+
ENCONTRE la siguiente solucion: en el archivo main.dart agrege en el metodo void main() async {
//
WidgetsFlutterBinding.ensureInitialized();//linea que se debe incluir .
final prefs = new PreferenciasUsuario();
await prefs.initPrefs();
//
runApp(MyApp());
//
}
alguien a podido resolver el problema? para la versión de flutter que están utilizando el null-safety?