SharedPreferences:未处理的异常:对空值使用空检查运算符

问题描述

这是整个代码文件getInstance() 上运行 SharedPreferences 时,它会抛出“用于空值的空检查运算符”错误。但在 initState

调用 getInstance 时有效
import 'package:Flutter/material.dart';

import 'package:shared_preferences/shared_preferences.dart';

main(List<String> args) {
  runApp(MaterialApp(home: MyApp()));
}

// ignore: must_be_immutable
class MyApp extends StatefulWidget {
  SharedPreferences sharedPreferences;
  MyApp() {
    SharedPreferences.getInstance().then((value) {
      sharedPreferences = value;
    });
  }
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
      child: Column(
        children: [
          Text(
            "${(widget.sharedPreferences != null) ? 
widget.sharedPreferences.getInt('count') ?? 'no count found' : ''}",),ElevatedButton(
                onpressed: () => setState(() {}),child: Text("setState"),],));
      }
}

为什么会这样?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...