gpt4 book ai didi

flutter - 从本地数据库获取数据后出现空错误

转载 作者:行者123 更新时间:2023-12-03 03:04:11 24 4
gpt4 key购买 nike

我的数据库几乎没有个人资料信息,我想在登录后将其加载到仪表板中。这是我的仪表板屏幕中的代码。

class __DashboardPageState extends State<_DashboardPage> {

UserClass userObject;
var db;

__DashboardPageState(){
getUserObj();
}
void getUserObj() async{
db = new DatabaseHelper();
userObject = await db.fetchUsers();
}


//-----------------

@override
Widget build(BuildContext context) {
getUserObj();

Container(
padding: const EdgeInsets.only(bottom: 8),
child: new Text(
"Welcome Back, "+ userObject.firstname,
style: TextStyle(
fontFamily: "Yorkten_ConMed",
fontSize: 14,
color: Color(0xffffffff),
),
),
)

The getter 'firstname' was called on null. Receiver: null Tried calling: firstname



在我的控制台和屏幕上将其作为错误得到显示为错误,如附件。我知道由于异步,它不会在绘制屏幕之前初始化。但是我不知道如何从数据库中提取和加载我的小部件中的数据。
enter image description here

最佳答案

您需要在加载数据时处理窗口小部件的可见性。

  • 从数据库中获取数据后,而不是构造函数使用AfterLayout来加载数据,请执行setState
  • 您可以使用screen_loader软件包在加载数据时显示加载程序。
  • 您需要处理可能的空值

  • 就像您的情况一样,很明显 userObject最初将为null,因此,当您使用 userObject的属性时,使用如下形式: userObject?.firstname ?? '-',这里,如果 userObjectfirstname为null,则返回 '-'

    关于flutter - 从本地数据库获取数据后出现空错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61838999/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com