dart Flutter误差:必须返回非空值,因为返回类型“Widget”不允许空值

dgiusagp  于 2023-10-13  发布在  Flutter
关注(0)|答案(5)|浏览(165)

正在调试模式下在F8331上启动lib\main.dart.正在运行Gradle任务“assembleDebug”...../../Documents/Android%20Studio%20 Project/kotaawan/lib/feature/main/home/product/new-product.dart:37:22:错误:必须返回非空值,因为返回类型“Widget”不允许空值。

  • 'Widget'来自'package:flutter/src/widgets/framework. dart'('/E:/flutter/packages/flutter/lib/src/widgets/framework. dart')。builder:(BuildContext context,AsyncSnapshot snapshot){ ^ ../../Documents/Android%20Studio%20Project/kotaawan/lib/feature/main/home/product/new-product.dart:22:19:错误:字段“futureProduct”应初始化,因为其类型“Future”不允许为null。
  • 'Future'来自'dart:async'。
  • 'Product'来自'package:kotaawan/model/product. dart'(' lib/model/product. dart')。未来未来产品^^^^^^^^^^^^^

FAILURE:生成失败,出现异常。

  • 其中:脚本'E:\flutter\packages\flutter_tools\gradle\flutter.gradle'行:991
  • 哪里出错了:任务“:app:compileFlutterBuildDebug”执行失败。

进程“命令”E:\flutter\bin\flutter.bat“已完成,退出值为非零% 1

  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。运行--扫描以获得完整的见解。
  • https://help.gradle.org获取更多帮助

BUILD FAQURY in 3 m 20 s例外:Gradle任务assembleDebug失败,退出代码为% 1

drnojrws

drnojrws1#

只需在构建器中添加一个默认返回窗口小部件。这样

return Text("No widget to build");
5n0oy7gb

5n0oy7gb2#

正在运行Gradle任务“assembleDebug”...../../Documents/Android%20Studio%20 Project/kotaawan/lib/feature/main/home/product/new-product.dart:37:22:错误:必须返回非空值,因为返回类型“Widget”不允许空值。
从这些行中,看起来你在第37行定义了一个应该返回Widget的函数,但实际上返回了null。请记住,当在Flutter中将一个小部件放置在屏幕上时,该小部件不能为null。您可以使用空白的Container捕获null小部件,如下所示:

...
child: someWidget ?? Container()
...

小提示:在提问时,您应该在问题中包含错误中提到的代码块(new-product.dart文件中第37行的代码块),以便其他人可以更快地查明错误。

vd8tlhqk

vd8tlhqk3#

StreamBuilder<QuerySnapshot>(
                stream: _FireData.collection('Text').snapshots(),
                builder: (
                  BuildContext context,
                  AsyncSnapshot snapshot,
                ) {
                  if (snapshot.hasData) {
                    final Messages = snapshot.data.docs;
                    List<Text> MessagesWeigets = [];
                    for (var message in Messages) {
                      final TextMessage = message.data['Text'];
                      final TextUser = message.data['User'];
                      final MessageWeiget = Text('$TextMessage From $TextUser');
                      MessagesWeigets.add(MessageWeiget);
                    }
                    return Column(
                      children: MessagesWeigets,
                    );
                  }
ercv8c1e

ercv8c1e4#

onWillPop:() { moveToLastScreen(); return Future(() => false) }

Future moveToLastScreen(){Navigator.pop(context,true); return true;}

m4pnthwp

m4pnthwp5#

解决它添加任何小部件在您的实现像这样。

return Text("Empty..");

相关问题