Saltar al contenido

Variables globales en Dart

Si te encuentras con algo que no entiendes puedes dejarlo en los comentarios y haremos todo lo posible de ayudarte lo más rápido posible.

Solución:

Simplemente cree un archivo de biblioteca y cree campos para los globales que necesita allí. Importe esta biblioteca en cualquier lugar donde necesite acceder a estos campos.

aplicación.dart

import 'globals.dart' as globals;

main() 
  globals.isLoggedIn = true;

componente1.dardo

import 'globals.dart' as globals;

class MyComponent {
  view() 
    if(globals.isLoggedIn) 
      doSomething();
    else 
      doSomethingElse();
    
  

globals.dart

library my_prj.globals;

bool isLoggedIn = false;

Tú también puedes

  • cree un singleton en la biblioteca global (consulte ¿Cómo se crea un Singleton en Dart? para obtener más detalles).
  • use observable para recibir notificaciones sobre cambios (consulte Implementar un patrón de observador en Dart, ¿Cómo puedo activar un tipo de evento onChange en una clase para obtener más detalles)

Puedes crear una clase

misColores.dart

class AppColors 

  static var primary = Colors.blue;

E importando tu clase

import 'package:myapp/.../myColors.dart';

Y accede con AppColors.primary

++++ Actualización de julio de 2019 ++++

Escribí un paquete que integra Flutter Global Config.

EZ Flutter es una colección de widgets, paquetes y muchas cosas más útiles, mixed en poco marco. El objetivo es hacer que las características estándar estén disponibles desde cero. EZ Flutter admite la administración de diferentes archivos de configuración a los que se puede acceder dentro de la aplicación.

Github: https://github.com/Ephenodrom/EZ-Flutter

dependencies:
  ez_flutter: ^0.2.0

Consulte la documentación sobre cómo funciona el uso de diferentes configuraciones.

https://github.com/Ephenodrom/EZ-Flutter/blob/master/documentation/APPLICATION_SETTINGS.md

++++ Respuesta antigua ++++

Tuve el mismo problema con las variables globales. Por lo tanto, también necesitaba una configuración diferente para cada versión de la aplicación (dev/prod) y no quiero escribir la configuración en el archivo main_dev.dart o main_prod.dart.

Escribí un paquete flutter simple que se ocupa de tener archivos de configuración separados y cargarlos al inicio de la aplicación. La configuración estará disponible en cada línea de código de su aplicación.

https://github.com/Ephenodrom/Flutter-Global-Config

Cómo usarlo :

Cree un archivo json en assets/cfg/$file.json

Agregue activos/cfg a su pubspec.yaml

Cargando diferentes archivos de configuración al inicio de la aplicación:

import 'package:flutter/material.dart';
import 'package:global_configuration/global_configuration.dart';

void main() async
  await GlobalConfiguration().loadFromAsset("app_settings");
  await GlobalConfiguration().loadFromAsset("env_dev_settings");
  runApp(MyApp());

class MyApp extends StatelessWidget 
  ...

Usando la configuración en su aplicación:

import 'package:flutter/material.dart';
import 'package:global_configuration/global_configuration.dart';

class CustomWidget extends StatelessWidget 

    CustomWiget()
        // Access the config in the constructor
        print(GlobalConfiguration().getString("key1"); // prints value1
    

    @override
     Widget build(BuildContext context) 
        // Access the config in the build method
        return new Text(GlobalConfiguration().getString("key2"));
     

Si sostienes algún enigma o capacidad de regenerar nuestro artículo puedes escribir una explicación y con placer lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *