首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主体可能正常完成,导致返回'null‘,但是返回类型'Widget’是一个潜在的非空类型?

主体可能正常完成,导致返回'null‘,但是返回类型'Widget’是一个潜在的非空类型?
EN

Stack Overflow用户
提问于 2022-04-21 12:48:04
回答 3查看 92关注 0票数 0

{ (builde:(context,snapshot)之前,我的代码中有这个错误

代码语言:javascript
复制
buildSearchresult() {
    return FutureBuilder(
        future: searchresultfuture,
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return CircularProgress();
          }
          
          
        });
  }
EN

回答 3

Stack Overflow用户

发布于 2022-04-21 12:55:17

builder必须始终返回一个小部件。但是,在您的代码中,如果条件!snapshot.hasData不满足,则builder返回null。因此,您应该在此条件之外返回一个小部件:

代码语言:javascript
复制
buildSearchresult() {
    return FutureBuilder(
        future: searchresultfuture,
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return CircularProgress();
          }
          return Container(); // The widget containing your data
        });
  }
票数 3
EN

Stack Overflow用户

发布于 2022-04-21 12:55:57

可能是duplicate

只有在没有数据时才返回小部件。您需要在每种可能的情况下返回小部件,例如

  • error
  • on data
  • no data
  • waiting

您还可以通过返回默认的小部件别人状态来简化。

代码语言:javascript
复制
builder: (context, snapshot) {
  if (snapshot.connectionState == ConnectionState.waiting) {
 /// return your widget while loadling
 } else if (snapshot.hasError) { 
 /// return your widget based on error
  } else if (snapshot.hasData) {
 /// return your widget while have data
  } else if (!snapshot.hasData) {
 /// return your widget while there is no data
  } else {
 /// return  widget
  }
},
票数 2
EN

Stack Overflow用户

发布于 2022-04-21 12:57:04

你把return忘在FutureBuilder()上了。您拥有的return仅用于您的if语句,而不是FutureBuilder()

使用:

代码语言:javascript
复制
buildSearchresult() {
    return FutureBuilder(
        future: searchresultfuture,
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return CircularProgress();
          }
          return ...     // add this to return something.
          
        });
  }

有关更多信息,请参见类似的问题here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71954753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档