我有一个StatefulWidget。然后,当我单击一个按钮时,它将显示一个警报对话框。当我实现时:
onTap: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text("Hello"),
);
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常。但是,当我将构建器中的内容转移到另一个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)".
Run Code Online (Sandbox Code Playgroud)
这是代码:
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"),
);
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码有问题吗?为了简单起见,我只是省略了一些变量。
Return在-之前添加单词LastVacDialog
builder: (BuildContext context) {
return LastVacDialog(
...
Run Code Online (Sandbox Code Playgroud)
由于错误表明状态,构建函数绝不能返回null。因此,通过在其前面添加return来返回LastVacDialog Widget。
| 归档时间: |
|
| 查看次数: |
3813 次 |
| 最近记录: |