Closed
Description
When I firstly call refreshController.sendBack
in initState
firstly, will throw NoSuchMethodError: The setter 'value=' was called on null.
As follows code:
abstract class BaseListState extends State<BaseListWidget>
with AutomaticKeepAliveClientMixin<BaseListWidget> {
RefreshController _refreshController = RefreshController();
List data;
@override
void initState() {
super.initState();
_loadNew();
}
_loadNew() async {
final remoteDate = await _loadData();
if (mounted) {
setState(() {
data = remoteDate;
});
_refreshController.sendBack(true, RefreshStatus.completed);
if (page == total) {
_refreshController.sendBack(false, RefreshStatus.noMore);
} else {
_refreshController.sendBack(false, RefreshStatus.canRefresh);
}
}
}
@override
Widget build(BuildContext context) {
return data == null
? Center(child: CircularProgressIndicator())
: SmartRefresher(
controller: _refreshController,
enablePullDown: true,
enablePullUp: true,
onRefresh: (up) {
if (up) {
_loadNew();
} else {
_loadMore();
}
},
child: ListView.builder(
itemCount: data == null ? 0 : data.length,
itemBuilder: (context, index) {
return childBuild(context, index);
}));
}
}
Metadata
Metadata
Assignees
Labels
No labels