【问题标题】:The body might complete normally, causing 'null' to be returned, but the return type is a potentially non-nullable type. / Flutter主体可能正常完成,导致返回“null”,但返回类型可能是不可为空的类型。 / 颤动
【发布时间】:2021-05-06 03:09:08
【问题描述】:

我刚开始用 Flutter 写东西。我经常收到这个错误。我该怎么办?这是我的代码:

@override
Widget build(BuildContext context) {
return Scaffold(
body: FutureBuilder<WeatherInfo>(
future: futureWeather,
builder: (context, snapshot) {
if (snapshot.hasData) {
} else if  (snapshot.hasError) {
return Center(
child: Text("${snapshot.error}"),
);

【问题讨论】:

  • 请提供完整的源代码
  • 你遇到了哪个错误?
  • @MdOmorFaruqe 我更新了问题,我写了所有代码。
  • @croxx5f 正如我在帖子中所写的那样; “主体可能正常完成,导致返回 'null',但返回类型可能是不可为空的类型。”

标签: flutter dart


【解决方案1】:
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: FutureBuilder<WeatherInfo>(
            future: futureWeather,
            builder: (context, snapshot) {
              if (snapshot.hasData) {
              } else if (snapshot.hasError) {
                return Center(
                  child: Text("${snapshot.error}"),
                );
              }
              return const Center(child: CircularProgressIndicator());
            }));
  }

在 FutureBuilder 中,您涵盖了您有数据或有错误的情况,但不是您期望未来完成的情况(并且既没有数据也没有错误)。

我刚刚添加了一个循环进度指示器,当 Future 没有返回数据或没有错误时显示,这应该可以防止 FutureBuilder 返回 null。并且当快照状态改变时,数据或错误会被显示出来。

【讨论】:

【解决方案2】:

我认为您应该尝试将未来的构建器包装在容器中

【讨论】:

  • 嗨!欢迎来到 SO。请为您的答案提供代码示例
猜你喜欢
  • 2021-11-15
  • 2021-09-29
  • 2022-10-14
  • 2021-06-26
  • 2022-08-06
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多