旅拍模块问题
来源:16-8 旅拍页面交互与我的页面实现
悠闲0
2022-03-03
问题1:定义了ScrollController,页面销毁时未及时释放。
@override
void dispose() {
super.dispose();
_scrollController.dispose();
}
问题2:上拉加载更多时,只做页数处理,数据并未处理bug。
_loadData({loadMore = false}) {
if (loadMore) {
//上拉加载更多
pageIndex++;
} else {
//下拉刷新
pageIndex = 1;
}
TravelDao.fetch(widget.travelUrl ?? TRAVEL_URL,
widget.groupChannelCode ?? '', pageIndex, PAGE_SIZE)
.then((TravelItemModel? model) {
_loading = false;
setState(() {
List<TravelItem> items = _filterItems(model!.resultList);
if (travelItems.isEmpty) {//问题:这里无需判断travelItems是否为空,初始化已经声明了[];未对上拉加载更多数据处理。
travelItems.addAll(items);
} else {
travelItems = items;
}
});
}).catchError((e) {
_loading = false;
print(e);
});
}
修改后
_loadData({loadMore = false}) {
if (loadMore) {
//上拉加载更多
pageIndex++;
} else {
//下拉刷新
pageIndex = 1;
}
TravelDao.fetch(widget.travelUrl ?? TRAVEL_URL,
widget.groupChannelCode ?? '', pageIndex, PAGE_SIZE)
.then((TravelItemModel? model) {
_loading = false;
setState(() {
List<TravelItem> items = _filterItems(model!.resultList);
if (loadMore) {//上拉加载更多
travelItems.addAll(items);
} else {//下拉刷新
travelItems = items;
}
});
}).catchError((e) {
_loading = false;
print(e);
});
}
写回答
1回答
-
CrazyCodeBoy
2022-03-04
@override
void dispose() {
super.dispose();
}
可以调下顺序先执行
_scrollController.dispose();
后执行super.dispose();,这样可以防止当页面销毁时,页面中的_scrollController还没释放的情况。012022-03-04
相似问题