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),