Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何仅在应用程序初始化后显示UI?_Dart_Dart Webui - Fatal编程技术网

Dart 如何仅在应用程序初始化后显示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

我有一个Dart+Web UI应用程序,首先需要从本地IndexedDB商店加载数据。IndexedDB API是异步的,因此在加载数据时我将得到一个回调。在数据库首次打开并准备就绪之前,我不想显示任何UI元素


在显示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将防止空的取消引用,但可见性隐藏方法不会。