我有一个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 回答
在前面添加Word
Return
-LastVacDialog
由于错误是陈述构建函数必须永远不会返回null . 因此,通过在其前面添加return来返回您的LastVacDialog小部件 .