flutter - Flutter - 在 StreamBuilder 加载数据和 UI 后显示警报对话框
问题描述
从 StreamBuilder 获取数据后,我想显示一个警报对话框。我还有一个要渲染的 UI。目前,当我尝试_loadUI
在返回实际 UI 之前在方法内部构建对话框时,我遇到了这样的错误。
在构建期间调用 setState() 或 markNeedsBuild()。
代码:
if (dataSnapshot.hasData) {
return dataSnapshot.data ? _loadUI(dataSnapshot.data) : _emptyView();
}
解决方案
你可以这样做:
void _loadUI(snapshot) {
...
WidgetsBinding.instance.addPostFrameCallback((_){
showDialog(
context: context,
...
);
});
}
addPostFrameCallback 在一帧期间运行,就在持久帧回调之后(即刷新主渲染管道时)。
推荐阅读
- scala - 如何从 sbt dist 中排除一些 jar 并在运行时加载它们
- java - ThreadPoolTaskScheduler 不适用于线程池
- java - 改造 API 接口调用错误
- authentication - 使用 context.Activity.CreateOAuthReplyAsync 在 Microsoft Teams 中显示来自机器人的 Office 365 身份验证对话框
- python-3.x - Python APScheduler 密钥错误
- python - 提供形状为 (?, n) 的占位符时出现问题
- r - 对于第三个预测变量的特定范围,我如何可视化来自 NN 的 2 个预测变量的洞察力
- html - 我的 CSS 过渡有问题,它在第一次运行时不起作用
- php - 在 mongodb PHP 中同时获取嵌套数组和更新字段
- asp.net-mvc - 在 React.JS 查看 ASP.NET MVC 中未定义的值