小编ali*_*oor的帖子

如何在flutter中使用injectable和get_it的共享偏好?

我在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

5
推荐指数
2
解决办法
2129
查看次数