【发布时间】:2021-07-21 18:45:58
【问题描述】:
我想将初始状态设置为使用shared_preferences 永久保存的值。该值是我的应用程序的语言,我在 main.dart 文件中使用 state.language 设置了我的应用程序的语言环境。
import 'storageUtils.dart';
class LanguageState {
//TODO: set initial language to language stored with shared_preference
LanguageState({this.language = LanguagePreference.getLanguage()});
final String language;
LanguageState copyWith({
String? language,
}) {
return LanguageState(language: language ?? this.language);
}
}
这些是我用来更改和获取语言的storageUtils.dart:
class LanguagePreference {
static late SharedPreferences _preferences;
static Future init() async =>
_preferences = await SharedPreferences.getInstance();
static Future changeLanguage(String language) async =>
await _preferences.setString("language", language);
static String getLanguage() => _preferences.getString("language") ?? "en";
}
但由于 getLanguage 函数不是常量,我无法使用 getLanguage 函数的动态值初始化状态。有没有其他方法可以用getLanguage函数的动态值初始化语言状态?
【问题讨论】:
标签: flutter dart flutter-bloc