【问题标题】:flutter FutureBuilder with nullable values用可为空的值颤振 FutureBuilder
【发布时间】:2019-10-02 03:01:18
【问题描述】:

我的 Flutter 应用程序中有一个 FutureBuilder,它应该获取可能为空的数据。

FutureBuilder(
    future: model.fetchIsCheckedInAsync(),
    builder: (BuildContext context, AsyncSnapshot snapshot) {
        if (snapshot.hasData) {

如果某些参数匹配,则从后端加载模型,但如果不匹配,则返回 null。

现在我面临的问题是,如果后端返回状态码 204 和 null 作为数据,

snapshot.hasData

总是为假,因为这个属性的实现是:

bool get hasData => data != null;

那么,即使数据为空,如何输入 hasData 部分?如果这不是好的做法,那么更好的方法是什么?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您可以切换快照的连接状态。未来的构建者通过这种状态跟踪“正在发生的事情”。当连接状态完成时,您知道您的未来已经结束。看sn-p:

    switch (snapshot.connectionState) {
          case ConnectionState.none:
            return Text('Press button to start.');
          case ConnectionState.active:
          case ConnectionState.waiting:
            return Text('Awaiting result...');
          case ConnectionState.done:
            if (snapshot.hasError)
              return Text('Error: ${snapshot.error}');
            return Text('Result: ${snapshot.data}');
        }
        return null; // unreachable
      },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2021-06-09
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 2021-08-20
      • 2021-06-04
      相关资源
      最近更新 更多