如何在没有 BuildContext 的情况下在简单的 class 中获取上下文

How to get context in a simple class without BuildContext in flutter

我正在使用此包插件 flutter_locales 进行应用程序本地化。因此,请使用此代码检查当前语言代码。

LocaleNotifier.of(context)!.locale!.languageCode;

现在的问题是,如果我在简单的 class 中使用此代码,这会在“上下文”中出错。

class Service {
  var lang = LocaleNotifier.of(context)!.locale!.languageCode; // getting error on "context"
}

那么如何在服务中没有 BuildContext 的情况下防止这种“上下文”错误 class?

你根本不知道。您需要将 BuildContext context 传递给您的 Service class。

试试这个:

class Service {
  final BuildContext context;

  Service(this.context);

  String get lang => LocaleNotifier.of(context)!.locale!.languageCode;
}

然后在创建这个的时候传入context class.