Shared Preference Dart - InternalLinkedHashMap не является подтипом типа Map

При попытке интегрировать общие предпочтения у меня возникают следующие проблемы. Я новичок в флаттере / дротике.

Unhandled exception:
[        ] E/flutter (24504): type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, Object>' where
[        ] E/flutter (24504):   _InternalLinkedHashMap is from dart:collection
[        ] E/flutter (24504):   Map is from dart:core
[        ] E/flutter (24504):   String is from dart:core
[        ] E/flutter (24504):   Object is from dart:core
[        ] E/flutter (24504): 
[        ] E/flutter (24504): #0      SharedPreferences.getInstance (package:shared_preferences/shared_preferences.dart)
[        ] E/flutter (24504): <asynchronous suspension>
[        ] E/flutter (24504): #1      AuthManager.init (package:apms_timesheet/data/user/auth_manager.dart:25:55)
[        ] E/flutter (24504): <asynchronous suspension>
[        ] E/flutter (24504): #2      _SplashState._init (package:apms_timesheet/ui/splash/splash_screen.dart:36:24)
[        ] E/flutter (24504): <asynchronous suspension>
[        ] E/flutter (24504): #3      _SplashState.initState (package:apms_timesheet/ui/splash/splash_screen.dart:32:5)

Фрагмент из splash_screen.dart

  final AuthManager _authManager;

  _SplashState(this._authManager);

  @override
  void initState() {
    super.initState();
    _init();
  }

  Future _init() async {
    await _authManager.init();

    String route;
    if (_authManager.loggedIn) {
      route = TimesheetPageView.routeName;
    } else {
      route = LoginPage.routeName;
    }

    Navigator.pushNamedAndRemoveUntil(context, route, (_) => false);

  }

Фрагмент из auth_manager.dart

Future init() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    String username = prefs.getString(KEY_USERNAME);
    String oauthToken = prefs.getString(KEY_OAUTH_TOKEN);

    if (username == null || oauthToken == null) {
      _loggedIn = false;
      await logout();
    } else {
      _loggedIn = true;
      _username = username;
    }

    _initialized = true;
  }

Какие версии Flutter (flutter doctor) и shared_preferences (проверьте pubspec.lock) вы используете?

Günter Zöchbauer 11.05.2018 08:53

Я ожидал, что это будет исправлено в github.com/flutter/plugins/blob/master/packages/…

Günter Zöchbauer 11.05.2018 09:02

@ GünterZöchbauer Dart 2.0 и Flutter v0.3.0

ASP 14.05.2018 07:02
0
3
428
0

Другие вопросы по теме