引发了另一个异常:对空值使用的空检查运算符

时间:2021-07-29 11:22:42

标签: flutter dart sharedpreferences

我需要使用未来的构建器来获取单选按钮表单共享首选项的值。 但是当我打开单选按钮的页面时出现错误是:

Another exception was thrown: Null check operator used on a null value 

单选按钮小部件是:

FutureBuilder<bool>(
                          future: getDayNotificationIsOn(),
                          builder: (context, snapshot) {
                            return NeumorphicSwitch(
                              value: snapshot.data!,
                              style: NeumorphicSwitchStyle(
                                thumbShape: NeumorphicShape.flat,
                                activeTrackColor: const Color(0xff257864),
                              ),
                              onChanged: (value) async {
                                setState(() {});
                                //sharedPreferences
                                await setDayNotificationIsOn(value);
                              },
                            );
                          }),

未来构建器中用于获取单选按钮值的函数:

  Future<bool> getDayNotificationIsOn() async {
    SharedPreferences _pref = await SharedPreferences.getInstance();
    return  _pref.getBool('dayNotificationIsOn') ?? false;
  }

2 个答案:

答案 0 :(得分:1)

您应该在 NeumorphicSwitch 之前添加一个检查,以通过添加 if (snapshot.hasData) 来确保快照具有数据。

答案 1 :(得分:0)

我猜 snapshot.data 为空,snapshot.data! 正在触发此异常