Flutter :: 从未来列表中更改有状态小部件中初始状态的值
Flutter :: change value in initialstate in statefull widget from future list
如果我有状态小部件,初始状态变量称为值,就像这样:
@override
void initState() {
thisDayActivity = dataBase.getDetails(widget.courseId, widget.actId);
value = 0.0;
super.initState();
}
thisDayActivity 是来自 sqflite 数据库的未来列表,我想检查列表是否为空,值变量等于 0,否则值等于未来列表中的一些数据。
我试过这个但是没用:
@override
void initState() {
thisDayActivity = dataBase.getDetails(widget.courseId, widget.actId);
if (thisDayActivity == []) {
value = 0.0;
} else {
value = thisDayActivity[0]['digree'].toDouble();
}
super.initState();
}
我该如何解决这个问题?
你的方法不起作用,因为你正在从未来的函数中读取一个值,你需要做的是使用 then
方法来实现你的目标,如下所示:
@override
void initState() {
dataBase.getDetails(widget.courseId, widget.actId)
.then((thisDayActivity) {
if (thisDayActivity == []) {
value = 0.0;
} else {
value = thisDayActivity[0]['digree'].toDouble();
}
});
super.initState();
}
如果我有状态小部件,初始状态变量称为值,就像这样:
@override
void initState() {
thisDayActivity = dataBase.getDetails(widget.courseId, widget.actId);
value = 0.0;
super.initState();
}
thisDayActivity 是来自 sqflite 数据库的未来列表,我想检查列表是否为空,值变量等于 0,否则值等于未来列表中的一些数据。
我试过这个但是没用:
@override
void initState() {
thisDayActivity = dataBase.getDetails(widget.courseId, widget.actId);
if (thisDayActivity == []) {
value = 0.0;
} else {
value = thisDayActivity[0]['digree'].toDouble();
}
super.initState();
}
我该如何解决这个问题?
你的方法不起作用,因为你正在从未来的函数中读取一个值,你需要做的是使用 then
方法来实现你的目标,如下所示:
@override
void initState() {
dataBase.getDetails(widget.courseId, widget.actId)
.then((thisDayActivity) {
if (thisDayActivity == []) {
value = 0.0;
} else {
value = thisDayActivity[0]['digree'].toDouble();
}
});
super.initState();
}