我想在从StreamBuilder获取数据后显示一个警报对话框。我也有一个UI要渲染。目前,当我试图在内部建立对话框时,我遇到了这样的错误 _loadUI
方法,然后再返回实际的UI。
在构建过程中调用setState()或markNeedsBuild()方法。
代码:我想在从StreamBuilder获取数据后,显示一个警告对话框。
if (dataSnapshot.hasData) {
return dataSnapshot.data ? _loadUI(dataSnapshot.data) : _emptyView();
}
你可以这样做。
void _loadUI(snapshot) {
...
WidgetsBinding.instance.addPostFrameCallback((_){
showDialog(
context: context,
...
);
});
}
addPostFrameCallback在一帧中运行,就在持久化帧回调之后(也就是主渲染管道被刷新的时候)。