何时在Flutter中使用FutureBuilder

我想知道什么时候使用 FutureBuilder 以及它有什么用处,因为小部件可以在其生命周期内多次构建,而不仅仅是在我们 setState 或更新它时,所以不要使用下面的代码:

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool done = false;

  @override
  void initState() {
    wait();
    super.initState();
  }

  Future<void> wait() async {
    await Future.delayed(Duration(seconds: 2));
    setState(() {
      done = true;
    });
  }

  @override
  Widget build(BuildContext context) {
    print('is built');
    return done ? Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {},
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    ) : Scaffold(body: CircularProgressIndicator(),);
  }
}

在哪种情况下,FutureBuilder 会为我工作而不是上述设置,因为我还想优化我的应用程序以减少后端读取(在 FutureBuilder 中我会阅读不止一次)。我正在寻找一种情况,FutureBuilder 比上述设置更有用和更正确。

以上是何时在Flutter中使用FutureBuilder的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>