首页 > 解决方案 > 我应该把开始运行一次的命令放在哪里?

问题描述

我真的很怀念C编程。Flutter 相当混乱。

这是问题所在:

我们在有状态类 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 类中触发的元素是什么?我应该把这个函数放在小部件构建方法中吗?但是如果小部件被刷新,那么这个函数肯定也会被调用(再次)——我只想调用一次。

谢谢

标签: flutterdart

解决方案


您可以使用FutureBuilder

例子:

    FutureBuilder(
      future: myDatabaseClass.instance.database,
      builder: (BuildContext context,AsycnSnapshot snapshot){
             //your code here
      },
    )

这只会在构建小部件时加载Future 一次。


推荐阅读