我正在实现包含三个选项卡的颤振应用程序,在这个应用程序中我使用块模式,块包含 API 调用和流。
现在 API 调用是在块类的构造函数中进行的。
class FeedListingBlock extends BlocBase {
String _category;
PublishSubject<FeedResponse> _feedListingController =
PublishSubject<FeedResponse>();
Sink<FeedResponse> get feedListing => _feedListingController.sink;
Stream<FeedResponse> get feedListingStream => _feedListingController.stream;
void getFeedList(String filter, String page) {
getFeeds(_category, page, filter).then((feedResponse) {
feedListing.add(feedResponse);
});
}
@override
void dispose() {
_feedListingController.close();
}
FeedListingBlock(this._category) {
getFeedList('All', '1');
}
}
我有三个选项卡,因此它将创建三个实例,FeedListingBlock
并且我必须StreamWidgets
收听流。
如果我这样做,它会在每次主屏幕状态发生变化时进行 API 调用,因为它会重新绘制选项卡。
那么当我们使用TabBarView
类似的小部件时,在哪里调用 API 呢?
我们是否必须在initState
或build
方法中调用API?