我在flutter中使用了injectable和get_it包,我有一个共享的首选项类:
@LazySingleton()
class SharedPref {
final String _token = 'token';
SharedPreferences _pref;
SharedPref(this._pref);
Future<String> getToken() async {
return _pref.getString(_token) ?? '';
}
Future<void> setToken(String token) async {
await _pref.setString(_token, token);
}
}
Run Code Online (Sandbox Code Playgroud)
这个类作为LazySingleton注入,我有一个模块用于注入共享首选项:
@module
abstract class InjectableModule {
@lazySingleton
Future<SharedPreferences> get prefs => SharedPreferences.getInstance();
}
Run Code Online (Sandbox Code Playgroud)
在集团类 im 中使用 SharedPref 类:
@injectable
class LoginCheckBloc extends Bloc<LoginCheckEvent, LoginCheckState> {
final SharedPref sharedPref;
LoginCheckBloc({@required this.sharedPref}) : super(const LoginCheckState.initial());
@override
Stream<LoginCheckState> mapEventToState(
LoginCheckEvent event,
) async* {
if (event is CheckLogin) { …Run Code Online (Sandbox Code Playgroud) dependency-injection injectable sharedpreferences flutter flutter-dependencies