繁体   English   中英

在无状态或有状态小部件外部使用上下文

[英]Using context outside stateless or stateful widgets

我将为此解释我的用例

我有一个继承的窗口小部件,其中包含一些值,例如BaseApiUrl和appname

class Config extends InheritedWidget {
  Config({
    @required this.appName,
    @required this.flavorName,
    @required this.apiBaseUrl,
    @required Widget child,
  }) : super(child: child);

  final String appName;
  final String flavorName;
  final String apiBaseUrl;

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

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

这在基于上下文的类中很好用,但是如果我在需要apiBaseUrl地方有这个类apiBaseUrl

import 'dart:async';
import 'package:http/http.dart';
class LoginRequest {
  Client client = Client();

  Future<Response> login(credentials) async => await client.get('');
}

能做到这一点吗?

上下文很重要,因此Flutter知道树中要在哪里查找InheritedWidget实例,因为可能有多个。 如果这不是您的用例,则可以考虑将所需的数据移动到简单的单例类(而不是小部件)中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM