Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
Firebase FutureBuilder在内部使用Anmiation时未完成_Firebase_Flutter_Dart_Flutter Futurebuilder_Flutter Future - Fatal编程技术网

Firebase FutureBuilder在内部使用Anmiation时未完成

Firebase FutureBuilder在内部使用Anmiation时未完成,firebase,flutter,dart,flutter-futurebuilder,flutter-future,Firebase,Flutter,Dart,Flutter Futurebuilder,Flutter Future,我有一个FutureBuilder,从Firestore中检索数据。正如这里经常提到的,我是在initState中这样做的 Future<Tour> _tour; @override void initState() { super.initState(); _tour = _tourService.getTourDataPerEmployee(employeeID: userinfo.user.uid); } 以下是我尝试添加动画的方式: Circ

我有一个FutureBuilder,从Firestore中检索数据。正如这里经常提到的,我是在initState中这样做的

Future<Tour> _tour;

  @override
  void initState() {
    super.initState();
    _tour = _tourService.getTourDataPerEmployee(employeeID: userinfo.user.uid);
  }

以下是我尝试添加动画的方式:

CircularProgressIndicator()
这很好,但是当我尝试用动画替换简单文本(“请稍候”)时,我得到了奇怪的结果。我从未来根本得不到任何结果,有时只有很少的结果。有时数据似乎根本没有到达,因为snapshot.data有时打印空值,有时所有结果都在那里。我看不到动画和构建器之间有任何一致性。

请尝试以下操作:

Future<Tour> _tour;
  
  getTours() async {
    return await _tourService.getTourDataPerEmployee(employeeID: userinfo.user.uid);

  }

  @override
  void initState() {
    super.initState();
    _tour = getTours();
  }
将来甚至可以调用getTours()

FutureBuilder(
        future: getTours(),

分享您如何尝试实现导致意外行为的动画可能会有所帮助。在您的初始状态下,在
tourService
之前,也可以尝试
wait
。@Loren.A我已经添加了一些细节,非常有魅力!我只需要在getTours函数前面添加Future,它就成功了!是的,忘了:)
FutureBuilder(
        future: _tour,
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            print(snapshot.data.waypoints);
            return Container(
                child: ListView.builder(
              itemCount: snapshot.data.waypoints.length,
              itemBuilder: (context, index) {
                return TimelineTile(
                  nodePosition: 0.03,
                  contents: TourTile(
                    tour: snapshot.data,
                    index: index,
                  ),
                  node: TimelineNode(
                    indicator: CustomIndicator(
                        finished: snapshot.data.waypoints[index].finished),
                    startConnector: CustomConnector(
                        finished: snapshot.data.waypoints[index].finished,
                        inProgress: false),
                    endConnector: CustomConnector(
                        finished: snapshot.data.waypoints[index].finished,
                        inProgress: index >= snapshot.data.waypoints.length - 1
                            ? true
                            : snapshot.data.waypoints[index + 1].finished
                                ? false
                                : true),
                  ),
                );
              },
            ));
          } else {
            return CircularProgressIndicator();
          }
        },
      ),
FutureBuilder(
        future: getTours(),