我有一个从流中获取数据的屏幕,这是我的 initState:
@override
void initState() {
print('initState priceList');
_tableController.loadTables().then((_) {
setState(() {
_isLoading = false;
});
priceController = PriceController(_tableController.items[0]['codigo'], 'PRICE'); // This controller returns the stream
});
scrollController.addListener(() {
if (scrollController.position.maxScrollExtent ==
scrollController.offset) {
priceController.loadMore();
}
});
super.initState();
}
当我点击打开屏幕时,它会抛出此错误:
<块引用>getter 'stream' 被调用为 null。 接收器:空 尝试调用:流
几秒钟后,错误消失,屏幕按预期显示。如何不显示错误?
UPDATE > 使用流的地方:
Expanded(
child: StreamBuilder(
stream: priceController.stream,
builder: (ctx, snapshot) {
if (snapshot.error != null) {
print(snapshot.error.toString());
return Center(
child: Text(snapshot.error.toString()),
);
} else if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
}
else if (snapshot.data.length == 0) {
return Center(
child: Text('0 items!'),
);
}
else {
return RefreshIndicator(
onRefresh: priceController.refresh,
child: ListView.builder(
....
答案 0 :(得分:1)
你在哪里调用stream?,在build方法中,你可以检查它是否为空。
(stream == null) ? Container() : ....