颤振 |构建函数绝不能 return null

Flutter | Build functions must never return null

错误消息非常简单, 我试过 return Container();否则还是不行

FutureBuilder reviewFutureBuilder() {

return FutureBuilder<OrdersModel>(
  future: _futureReviewModel,
  builder: (context, snapshot) {
    if (snapshot.hasData) {

    } else if (snapshot.hasError) {
     return Center(
        child: Column(
          children: [
            Text('$snapshot.error'),
          ],
        ),
      );
    }
    return Center(
      child: Column(
        children: [
          CircularProgressIndicator(),
        ],
      ),
    );
  },
);

this is my error in the studio

this my mobile UI error

由于没有提供可用的示例,我会将您转到文档。 FutureBuilder

在页面中间,您会找到一个交互式示例。 由于我不知道你的代码的全部功能,我提供了一个工作示例:

首先您需要 if-check 中的数据:

if (snapshot.hasData) {

}

变为:

if (snapshot.hasData) {
    return Center(
    child: Column(<SOME DATA>),
  );
}

完整示例:

FutureBuilder reviewFutureBuilder() {
  return FutureBuilder<OrdersModel>(
  future: _futureReviewModel,
  builder: (context, snapshot) {
  if (snapshot.hasData) {
    return Center(
    child: Column(<SOME DATA>),
  );
  } else if (snapshot.hasError) {
    return Center(
      child: Column(
        children: [
          Text('$snapshot.error'),
        ],
      ),
    );
  } else {
    return Center(
      child: Column(
        children: [
          CircularProgressIndicator(),
          ],
        ),
      );
    }
  },
);
}

我通过将 snapshot.haserror 和 return CircularProgress 包装在一个容器中解决了我的问题,这是我解决它的方法。

else if (snapshot.hasError) {
      return SafeArea(
        child: Container(
          height: MediaQuery.of(context).size.height,
          width: MediaQuery.of(context).size.width,
          child: Column(
            children: [
              Text('$snapshot.error'),
            ],
          ),
        ),
      );
    } else {
      return SafeArea(
        child: Container(
          height: MediaQuery.of(context).size.height,
          width: MediaQuery.of(context).size.width,
          child: Column(
            children: [
              CircularProgressIndicator(),
            ],
          ),
        ),
      );
    }