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();
  }