В моем приложении Flutter я разделяю среду разработки dev и prod. Для этого я создал класс AppConfig, расширяющий унаследованный виджет.
class AppConfig extends InheritedWidget {
AppConfig({
@required this.title,
@required this.clientId,
@required this.redirectUrl,
@required this.discoveryUrl,
@required this.scopes,
@required this.apiBaseUrl,
@required Widget child,
}) : super(child: child);
final String title;
final String clientId;
final String redirectUrl;
final String discoveryUrl;
final String apiBaseUrl;
final List<String> scopes;
static AppConfig of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<AppConfig>();
}
@override
bool updateShouldNotify(InheritedWidget oldWidget) => false;
}
В представлениях все работает нормально, и я могу получить доступ к файлу конфигурации следующим образом: _config = AppConfig.of(context);
Я следую шаблону архитектуры BLo C в своем приложении. Можно ли получить доступ к файлу конфигурации на уровне blo c или сетевом уровне? например, в моем провайдере API. Проблема в том, что у меня нет контекста в этих классах. Цель будет примерно такой:
Future<dynamic> get(String url) async {
_config = AppConfig.of(context);
}
как мне этого добиться?