У меня есть виджет без сохранения состояния под названием ToggleButtonsList, и одно из полей моего экземпляра isSelectedType не установлено как final. Это предупреждение, которое я получаю из-за этого:
Этот класс (или класс, от которого наследуется этот класс) помечен как '@immutable', но одно или несколько его полей экземпляра не являются окончательными: ToggleButtonsList.isSelectedType
Вот часть моего кода:
class ToggleButtonsList extends StatefulWidget {
ToggleButtonsList({this.type, this.stringList});
final String type;
final List<String> stringList;
List<bool> isSelectedType = [];
@override
_ToggleButtonsListState createState() => _ToggleButtonsListState();
}
class _ToggleButtonsListState extends State<ToggleButtonsList> {
@override
Widget build(BuildContext context) {
}
}
Мой вопрос: я подумал, что поля экземпляра должны быть установлены на final только для виджетов без сохранения состояния, а НЕ для виджетов с отслеживанием состояния. Это правда? Это предупреждение, о котором мне следует беспокоиться, поскольку я не использую StatelessWidget, или я могу его игнорировать? Когда я игнорирую предупреждение, мое приложение работает отлично.
Чтение или класса, который этот класс наследует от части предупреждения заставило меня попытаться найти в моем проекте любые StatelessWidgets, от которых этот класс может унаследовать, и единственный StatelessWidget, который у меня есть в моем проекте, - это мой main.dart :
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(
primaryColor: Colors.blueGrey,
scaffoldBackgroundColor: Colors.blueGrey),
home: PriceScreen(),
);
}
}
Изменение моего класса MyApp на StatefulWidget не избавило от предупреждения.