Ошибка Flutter: значение типа Future <bool>не может быть присвоено переменной типа bool. - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь читать из shared preferences, но застрял. У меня есть эта ошибка, и я не знаю, как с ней бороться: A value of type 'Future<bool>' can't be assigned to a variable of type 'bool'

Мой код выглядит так:

onTap: () {
        setState(() {
          if (_getPref()) {       //here occurs the error
            _stateColor = _disableColor;
            _setPref(false);
          } else {
            _stateColor = _enableColor;
            _setPref(true);
          }
        });
      },

И метод:

Future<bool> _getPref() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    bool value = prefs.getBool(widget.myIndex) ?? false;
    return value;
  }

Буду очень признателен, если мне кто-нибудь поможет!

1 Ответ

1 голос
/ 16 июня 2020

Вам необходимо await функцию _getPref(), потому что она возвращает будущее Future<bool>

onTap: () async {
    if (await _getPref()) {       //here occurs the error
      _stateColor = _disableColor;
      _setPref(false);
    } else {
      _stateColor = _enableColor;
      _setPref(true);
    }
    setState(() {});
  },
...