gpt4 book ai didi

sqlite - 在flutter中启动应用程序时,如何检查我的sqlflite数据库是否有数据?

转载 作者:行者123 更新时间:2023-12-03 04:37:45 24 4
gpt4 key购买 nike

我正在做一个项目,我必须保留一个喜欢的图标和一个选定的fvrt列表...现在使用sqlflite ..我已经完成了..当用户按下喜欢的边框图标时,它变为红色,并且数据保存在收藏夹列表中..当用户再次按下同一按钮时..数据从列表中导出,并且收藏夹按钮变为其默认颜色...但是我无法执行的操作..收藏夹按钮是默认为false ..因此,即使在fvrt列表中收集了数据..当我启动应用程序时,所有的fvrt按钮都显示_fvrt默认收藏夹btn ...
我想知道如何检查initState()中的数据,如果数据已经在数据库中退出,则btn会保持红色。
这是我用过的一些条件代码。

Widget _buildRow(String pair) {
final bool alreadySaved = _saved.contains(pair);
print("Already saved $alreadySaved");
print(pair);
return IconButton(
icon: new Icon(


alreadySaved ? Icons.favorite : Icons.favorite_border,
color:alreadySaved? Colors.red : Colors.white,
),onPressed: (){
setState(() {
if (alreadySaved) {
_saved.remove(pair);
_deleteEmployee(pair);
} else {
_saved.add(pair);
_insert(pair);

}
});
},
);
}

最佳答案

从数据库读取数据是一种异步功能-需要一些时间。您可以做的是创建一个加载状态,并显示一个加载指示器,直到异步功能完成。

import 'package:flutter/material.dart';

class MyClass extends StatefulWidget {
@override
_MyClassState createState() => _MyClassState();
}

class _MyClassState extends State<MyClass> {
bool isLoading = false;
List _saved = [];


@override
void initState() {
// Note that you cannot use `async await` in initState
isLoading = true;
_readFromDataBase().then((savedStuff) {
_saved = savedStuff;
isLoading = false;
});
super.initState();
}

@override
Widget build(BuildContext context) {
return !isLoading ? _buildRow("myPair") : CircularProgressIndicator();
}

Widget _buildRow(String pair) {
final bool alreadySaved = _saved.contains(pair);
print("Already saved $alreadySaved");
print(pair);
return IconButton(
icon: new Icon(


alreadySaved ? Icons.favorite : Icons.favorite_border,
color:alreadySaved? Colors.red : Colors.white,
),onPressed: (){
setState(() {
if (alreadySaved) {
_saved.remove(pair);
_deleteEmployee(pair);
} else {
_saved.add(pair);
_insert(pair);

}
});
},
);
}
}
或者,您可以检查FutureBuilder小部件。这是官方文档: https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html

关于sqlite - 在flutter中启动应用程序时,如何检查我的sqlflite数据库是否有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63831860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com