渲染streamBuilder之前的延迟

时间:2019-06-18 15:03:32

标签: flutter dart

我有streamBuilder,当我短暂浏览页面时,该函数返回零错误,即数据没有时间加载且该函数返回null

if (customers != null) {
  return StreamBuilder(
    stream: customers,
    //initialData: ,
    builder: (context, AsyncSnapshot snapshot) {
    if (snapshot.hasData) {
      if (snapshot.data != null) {
          return ListView.builder(
            itemCount: snapshot.data.documents.length,
            padding: EdgeInsets.all(5.0),
            itemBuilder: (context, i) {
              return new ListTile(
                title:
                Column(mainAxisAlignment: MainAxisAlignment.start,
                    children: <Widget>[
                    Text(snapshot.data.documents[i].data['pickedDay'],),
                    Text(snapshot.data.documents[i].data['pickedTime']),
                    Text(snapshot.data.documents[i].data['service']),
                    Text(snapshot.data.documents[i].data['phoneNumber']),
                    Divider(height: 10, color: primaryColor2),
                  ],),
                },
              );
            },
          );
        }
      }
   // }
    },
  );
} else {
return new CircularProgressIndicator();
}

}>

我该如何解决?

1 个答案:

答案 0 :(得分:3)

snapshot.hasData为false时,您的构建器未返回数据。这就是为什么您看到该错误的原因。

您应该退货。它可以只是一个空容器或装料器。 像这样:

if (snapshot.hasData || snapshot.data != null) {
  //your current code
}else{
  return Container()
}