Flutter 错误:无法将“Future<bool>”类型的值分配给“bool”类型的变量

Ovi*_*vat 4 sharedpreferences flutter

我正在尝试阅读,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);
          }
        });
      },
Run Code Online (Sandbox Code Playgroud)

和方法:

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

如果有人帮助我,我将不胜感激!

Jid*_*uru 7

您必须使用await_getPref()函数,因为它返回一个未来Future<bool>

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