【问题标题】:The method 'getString' was called on null. Receiver: null Tried calling: getString("name")在 null 上调用了方法“getString”。接收方:null 尝试调用:getString("name")
【发布时间】:2021-08-29 19:05:35
【问题描述】:

我遇到了一个错误 'getString' 方法在 null 上被调用。 接收方:空 尝试调用:getString("name") 我已经实例化了

firebaseFirestore = FirebaseFirestore.instance;
  sharedPreferences = await SharedPreferences.getInstance();
class _HomePageState extends State<HomePage> {
  HomepageBloc _bloc;
  ScrollController _scrollController = ScrollController();
  TextEditingController _userNameSearchController = TextEditingController();
  String userName = sharedPreferences.getString(SharedPreferencesKey.name);
  String userToken = sharedPreferences.getString(SharedPreferencesKey.token);
  @override
  void initState() {
    super.initState();
    _bloc = HomepageBloc(userToken);
  }

  @override
  void dispose() {
    super.dispose();
    _bloc.dispose();
  }

不知道为什么会出现这个错误,如果这个错误能解决就好了

【问题讨论】:

    标签: firebase flutter dart null getstring


    【解决方案1】:

    您实例化sharedPreferences = await SharedPreferences.getInstance(); 的方式需要等待,例如SharedPreferences。最简单的方法是使用 FutureBuilder 等待,比如:

    FutureBuilder(
            future: SharedPreferences.getInstance(),
            builder: (context, snapshot) {
              if (snapshot.hasData) {
                final sharedPreferences = snapshot.data;
                String userName = sharedPreferences.getString(SharedPreferencesKey.name);
                String userToken = sharedPreferences.getString(SharedPreferencesKey.token);
              }
            },
          )
    

    此外,您可以随心所欲地处理它。主要思想是等待实例创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-26
      • 2020-12-06
      • 2021-01-14
      • 2020-05-24
      • 2022-08-05
      • 2021-04-17
      • 2020-07-03
      • 2021-03-29
      相关资源
      最近更新 更多