【问题标题】:How to avoid getting null data when it is assigned to global variables in flutter?在flutter中将其分配给全局变量时如何避免获取空数据?
【发布时间】:2021-08-19 11:48:02
【问题描述】:

当用户登录到应用程序时,我已将用户数据存储在共享首选项中,通过 consol 中的 print 检查成功保存的数据,问题是当数据存储在全局变量中以供以后使用时,它给出了 null用户 ID。

int? getUserId; // global var 

Future fetch() async {
   var pref = await SharedPreferences.getInstance();
   var userID = pref.getInt('userID');  
    
   //this line prints the correct userID save in pref
   print("userID " + pref.getInt('userID').toString());  
   

   userID = getUserId;
   //this line prints the null userID  
   print("userID -" + userID.toString());  
}

我们如何避免这种类型的错误,因为这主要发生在字符串类型数据打印为空字符串的情况下,有人向我解释这个问题的原因吗?

【问题讨论】:

  • 我没有看到分配给 getUserId 变量的任何值。

标签: flutter dart global-variables dart-null-safety


【解决方案1】:

你的问题在这里

userID = getUserId;

您没有为 getUserId 变量分配任何值,因此 userID 为空

【讨论】:

    【解决方案2】:

    我认为您的意思是 getUserId = userID; 而不是 userID = getUserId;

    话说,全局变量不是很好的编程习惯,看看state management patterns Flutter 提供的各种。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 2017-06-25
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      相关资源
      最近更新 更多