Globala konstanter

InheritedWidget är en förälderclass som används för att skicka information ner till widgetbarnen. Skapa filen config.dart och class AppConfig som gör konstanterna tillgängliga i hela appen.

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

class AppConfig extends InheritedWidget {
  final String appName;
  final String flavorName;
  final String apiBaseUrl;

  AppConfig({@required this.appName, @required this.flavorName, @required this.apiBaseUrl, @required Widget child}) : super(child: child);

  static AppConfig of(BuildContext context) {
    return context.inheritFromWidgetOfExactType(AppConfig);
  }

  @override
  bool updateShouldNotify(InheritedWidget oldWidget) => false;
}

Hämta config.dart i main.dart och använd mainfunktionen för att sätta värdena.

void main() {
  var configApp = new AppConfig(
    appName: 'Fluttersnuttar',
    flavorName: 'Development',
    apiBaseUrl: 'http://dev-api.fluttersnuttar.se',
    child: new MyApp(),
  );
  runApp(configApp);
}

Så här kommer man åt konstanterna var som helst i appen:

child: Text(AppConfig.of(context).apiBaseUrl),

Lämna ett svar

Stäng meny