У меня есть виджет без состояния, и при написании кода я использую неокончательное поле в виджете без состояния, и ide продолжает предупреждать меня, что all the fields in stateless widget should be final
Но я не понимаю, почему наличие неокончательного поля в виджете без состояния является проблемой.
Я думаю, что должно быть совершенно нормально иметь неокончательное поле, потому что может быть поле, которое мы не хотим изменять позже, но это поле может быть инициализировано только внутри функции конструктора, поэтому для этого вам нужно использовать неокончательное поле
пример:
class Temp extends StatelessWidget {
final int a;
final int b;
int c;
temp({this.a, this.b}) {
this.c = this.a + this.b;
}
@override
Widget build(BuildContext context) {}
}
В приведенном выше виджете я не могу сделать c
окончательным, потому что он инициализируется внутри функции конструктора, хотя у меня нет планов изменять переменную c
в будущем.
Если наличие неокончательного поля в виджете без сохранения состояния не является хорошей идеей, тогда как справиться с вышеуказанной ситуацией.
Примечание: я не могу использовать Constructor() : [initialization] {}
, потому что инициализация может включать функцию или циклы