我真的很想念C编程。 Flutter非常令人困惑。
问题出在这里
我们在Stateful类Home中具有一个功能。这将创建一个名为myMenu的页面。
class Home extends StatefulWidget {
myMenu createState() => myMenu();
}
class myMenu extends State<Home>
{
void myProblemFunction(String stringItem) async {
final db = await myDatabaseClass.instance.database;
...
}
每当myProblemFunction运行时,它将实例化一个新的数据库实例。
我只想输入一次此命令(即:
final db = await myDatabaseClass.instance.database
我该怎么办?
myMenu类中触发了哪些元素?我是否应该将此函数放在小部件构建方法中?但是可以肯定的是,如果刷新了小部件,那么该函数也将再次被调用-我只想调用一次。
谢谢
答案 0 :(得分:0)
您可以使用FutureBuilder
示例:
FutureBuilder(
future: myDatabaseClass.instance.database,
builder: (BuildContext context,AsycnSnapshot snapshot){
//your code here
},
)
这将仅在构建窗口小部件时加载Future
一次。
答案 1 :(得分:0)
将您只想在initState()中运行一次的代码放入
: @override
void initState() {
super.initState();
// TODO code you want to run only once
}