У меня есть виджет без сохранения состояния, и при написании кода я использую неконечное поле в виджете без сохранения состояния, и я продолжаю предупреждать, что 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] {}
, потому что инициализация может включать функцию или циклы