Dart 如果嵌套在子项中,则不会呈现StreamBuilder小部件:<;Widget>;[]
我正在尝试从Firebase的FireStore数据库读取数据,并在Flatter应用程序中显示为列表 我遇到了这个问题,需要将StreamBuilder作为Widget数组的一部分。如果StreamBuilder小部件作为小部件的单个子部件,则会呈现OK。但是如果它是子窗口小部件数组的一部分,它就不起作用。e、 g 下面是我的小部件,它使用StreamBuilderDart 如果嵌套在子项中,则不会呈现StreamBuilder小部件:<;Widget>;[],dart,google-cloud-firestore,flutter,Dart,Google Cloud Firestore,Flutter,我正在尝试从Firebase的FireStore数据库读取数据,并在Flatter应用程序中显示为列表 我遇到了这个问题,需要将StreamBuilder作为Widget数组的一部分。如果StreamBuilder小部件作为小部件的单个子部件,则会呈现OK。但是如果它是子窗口小部件数组的一部分,它就不起作用。e、 g 下面是我的小部件,它使用StreamBuilder Widget postsListWidget = new StreamBuilder( stream: Fire
Widget postsListWidget = new StreamBuilder(
stream: Firestore.instance.collection('baby').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return const Text('Loading...');
return new ListView.builder(
itemCount: snapshot.data.documents.length,
padding: const EdgeInsets.only(top: 10.0),
itemExtent: 55.0,
itemBuilder: (context, index) =>
_buildListItem(context, snapshot.data.documents[index]),
);
});
下面是我在使用StreamBuilder小部件时使用的单子级父项,例如容器
return new Scaffold(
body: new Container(
child: postsListWidget,
)
上述代码可以正常工作,因为容器只有一个“子”元素
但是,如果我使用另一个小部件,该小部件可以有多个子部件,例如行,StreamBuilder将不会渲染。e、 g
return new Scaffold(
body: new Row(
children: <Widget>[postsListWidget],
)
如果有人能帮忙,我会很感激的,我就是找不到谷歌来帮我 我认为您缺少对错误和数据的检查,这些错误和数据尚未可用,如中所示
新建StreamBuilder(
流:\ u lot?.bids,//流或空
生成器:(BuildContext上下文,异步快照){
if(snapshot.hasError)
返回新文本('Error:${snapshot.Error}');
交换机(快照.连接状态){
case ConnectionState.none:返回新文本(“选择批次”);
case ConnectionState.waiting:返回新文本('waiting bids…');
case ConnectionState.active:返回新文本(“\$${snapshot.data}”);
case ConnectionState.done:返回新文本(“\$${snapshot.data}(closed)”;
}
},
)
Widget-postslitwidget=new StreamBuilder(
看起来可疑。你在用postslitwidget
做什么?我正在尝试从firebase FireStore数据库获取流并显示在列表中。因为它在行->子数组下不工作,所以我为来自数据库的帖子创建了一个单独的小部件,即postslitwidget!
flutter: Another exception was thrown: RenderBox was not laid out: RenderViewport#9162d NEEDS-LAYOUT NEEDS-PAINT
flutter: Another exception was thrown: RenderBox was not laid out: RenderViewport#9162d NEEDS-PAINT
flutter: Another exception was thrown: Tried to paint a RenderObject reentrantly.
flutter: Another exception was thrown: 'package:flutter/src/widgets/text.dart': Failed assertion: line 213 pos 15: 'data != null': is not true.
flutter: Another exception was thrown: Tried to paint a RenderObject reentrantly.
new StreamBuilder<int>(
stream: _lot?.bids, // a Stream<int> or null
builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
if (snapshot.hasError)
return new Text('Error: ${snapshot.error}');
switch (snapshot.connectionState) {
case ConnectionState.none: return new Text('Select lot');
case ConnectionState.waiting: return new Text('Awaiting bids...');
case ConnectionState.active: return new Text('\$${snapshot.data}');
case ConnectionState.done: return new Text('\$${snapshot.data} (closed)');
}
},
)