-
-
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); | |
} | |
} | |
@kevin05vm muchas gracias por el aporte
Gracias al profe Fernando Herrera 'Crack'. @kevin05vm me ayudaste a solucionar el error.
Hola fernando... he estado corriendo este código y no ha funcionado. Muestra esto:
Se produjo una excepción. FlutterError (ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.
Hola fernando... he estado corriendo este código y no ha funcionado. Muestra esto:
Se produjo una excepción. FlutterError (ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.
@MacaCar96 Creo deberías echarle un vistazo a los comentarios anteriores ;) es bueno leer comentarios en GitHub
Gracias por el curso profe, sigue así 👍
@kevin05vm Gracias por el fix
@kevin05vm tnks
Gracias!
Una duda, usando Null safety se tendría que modificar la linea SharedPreferences _prefs;, cual seria la solución ?
@EriickM creo que agregando el 'late' al inicio, sin embargo al momento de compilar me dio un error en el initPrefs() que dice: _CastError (Null check operator used on a null value)
Hola, tengo el mismo problema que @restablue, alguien ya logro solucionarlo?
@mmorenoITESA en la clase main antes de instanciar preferenciasUsuarios() pon esta linea WidgetsFlutterBinding.ensureInitialized();
@mmorenoITESA en la clase main antes de instanciar preferenciasUsuarios() pon esta linea WidgetsFlutterBinding.ensureInitialized();
Muchas gracias @restablue
Hola Comunidad no se si alguien se ha enfrentado con este error ; agradezco si han podido solucionar; [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
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_field
Agradezco su ayuda :c
alguien a podido resolver el problema? para la versión de flutter que están utilizando el null-safety?
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());
//
}
@kevin05vm tienes toda la razón muchas gracias por tu aporte, seria cuestión de que Fernando lo agregara.