Dart 如何仅在应用程序初始化后显示UI?
我有一个Dart+Web UI应用程序,首先需要从本地IndexedDB商店加载数据。IndexedDB API是异步的,因此在加载数据时我将得到一个回调。在数据库首次打开并准备就绪之前,我不想显示任何UI元素Dart 如何仅在应用程序初始化后显示UI?,dart,dart-webui,Dart,Dart Webui,我有一个Dart+Web UI应用程序,首先需要从本地IndexedDB商店加载数据。IndexedDB API是异步的,因此在加载数据时我将得到一个回调。在数据库首次打开并准备就绪之前,我不想显示任何UI元素 在显示UI之前,我如何等待数据库初始化?使用可见性隐藏主体标记:隐藏: 然后在未来的then()回调中显示它 window.indexedDB.open(dbName, 版本:版本,, OnUpgradeRequired:createObjectStore)。然后(handleDBO
在显示UI之前,我如何等待数据库初始化?使用
可见性隐藏主体
标记:隐藏
:
然后在未来的then()回调中显示它
window.indexedDB.open(dbName,
版本:版本,,
OnUpgradeRequired:createObjectStore)。然后(handleDBOpened);
已处理的(…){
查询('body')。style.visibility=“visible”//我在我的项目中以Web UI的方式进行查询:
。。。
应用程序已准备就绪。
...
@observable bool showApplication=false;
main(){
//初始化。。。
window.indexedDB.open(…).then((){
showApplication=true;
});
}
这还有一个额外的好处:单独的代码/web组件还可以在依赖db连接等之前检查应用程序状态。这并不总是重要的,但使用可见性(此答案)和使用模板if(Kai的答案)之间有一个细微的区别当条件为false时,模板中的任何内容都不会被计算,因此如果有:{x.foo}
vs{x.foo}}
,那么模板if将防止空的取消引用,但可见性隐藏方法不会。