首页 文章

Flutter:showDialog:build函数返回null

提问于
浏览
0

我有一个StatefulWidget . 然后,当我单击一个按钮时,它会显示一个警告对话框 . 当我实施时:

onTap: () {
    showDialog(
        context: context,
        builder: (BuildContext context) {
            return AlertDialog(
                  title: Text("Hello"),
            ); 
        }

}

一切正常 . 但是当我将构建器中的内容转移到另一个StatefulWidget时,会发生以下错误:

A build function returned null.
I/flutter ( 3647): The offending widget is: Builder
I/flutter ( 3647): Build functions must never return null. To return an empty space that causes the building widget to
I/flutter ( 3647): fill available room, return "new Container()". To return an empty space that takes as little room as
I/flutter ( 3647): possible, return "new Container(width: 0.0, height: 0.0)".

这是代码:

Here is the calling StatefulWidget:
onTap: () {

            showDialog(
              context: context,
              builder: (BuildContext context) {
                 LastVacDialog(
                  currentDose: currDose,
                  currentDate: currDate,
                  currentIndex: i,
                  setValue: changeDoseValueAndDate,
                ); 

              },
            );
          },

Here is the new StatefulWidget:
class LastVacDialog extends StatefulWidget {
    LastVacDialog({
    this.currentDose,
    this.currentDate,
    this.setValue,
    this.currentIndex,
  });

  final int currentDose;
  final DateTime currentDate;
  final void Function(int, DateTime, int) setValue;
  final currentIndex;

  @override
  LastVacDialogState createState() => new LastVacDialogState();
}

class LastVacDialogState extends State<LastVacDialog> {
    int _dose;
    DateTime _today;




   @override
   Widget build(BuildContext context) {
       return AlertDialog(
           title: Text("Last Dose"),
       );
    }
}

我的代码有问题吗?为简单起见,我省略了一些变量 .

1 回答

  • 1

    在前面添加Word Return - LastVacDialog

    builder: (BuildContext context) {
                  return LastVacDialog(
                         ...
    

    由于错误是陈述构建函数必须永远不会返回null . 因此,通过在其前面添加return来返回您的LastVacDialog小部件 .

相关问题