在Flutter中,我使用FutureBuilder来显示API中的数据。出现错误时,我想弹出一个错误对话框。
但是,当我调用showDialog()时,它将引发错误>
setState() or markNeedsBuild() called during build.
这是我的代码
return FutureBuilder( future: xxx, builder: (context, snapshot) { if (snapshot.hasData) { //DO SOMETHING } else if (snapshot.hasError) { //TODO: Show Error showDialog( context: context, builder: (BuildContext context) { return AlertDialog( title: Text("Error"), content: Text("HAHAHA"), actions: <Widget>[ FlatButton( child: Text("No"), ), FlatButton( child: Text("Yes") ), ], ); } ); return Container(); } else { //DO SOMETHING } },
[请帮助告知我如何在FutureBuilder中显示对话框。
在Flutter中,我使用FutureBuilder来显示API中的数据。有错误时,我想弹出一个错误对话框。但是,当我调用showDialog()setState()或markNeedsBuild()...
当构建方法正在构建窗口小部件时,我们无法调用setState,navigate或showDialog。因此,我们可以等待一微秒,同时构建方法完成构建小部件,以便显示对话框。