Отрефакторить код

3 000 руб. за проект
10 ноября 2022, 22:31 • 4 отклика • 100 просмотров
Вам дан приведенный ниже код. Найдите в нем ошибки и предложите рефакторинг. (Желательно пояснить в комментариях почему сделаны те или иные изменения)



@immutable
class HomePage extends StatefulWidget {
String? authToken;

HomePage({
String? authToken,
Key? key,
}) : this.authToken = authToken ?? '',
super(key: key);

@override
State<HomePage> createState() => _HomePageState(authToken!);
}

class _HomePageState extends State<HomePage> {
String authToken;
List<String>? items;

_HomePageState(this.authToken);

@override
void initState() {
super.initState();

if (items == null && items!.isEmpty) {
Api().loadData(authToken).then((data) {
items = data;
});
}
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Dashboard'),
),
body: RefreshIndicator(
onRefresh: () async {
Api().loadData(authToken).then((value) => items = value);
},
child: Center(
child: ListView(
children: [
for (final item in items!)
ListTile(
title: Text(item),
),
],
)),
),
);
}
}