Сохранять последние поля в виджете или состоянии?
Где хранить окончательные значения?
в StatefulWidget
(мой подкласс, конечно) и доступ к нему из State
(подкласс) через widget.thatFinalField
, или же
в State
сам. Я уже видел оба подхода. Есть ли плюсы и минусы для каждого из них?
1 ответ
Вы должны хранить final
поля-члены (которые передаются через аргументы конструктора) на StatefulWidget
и сделать их публичными.
StatefulWidget
ассоциируется State
следует использовать только конструктор по умолчанию (без аргументов), а его поля-члены должны быть закрытыми (начиная с _
) и изменчивый. Инициализируйте их в строке или в initState
если нужна дорогая или асинхронная работа
Эта модель позволяет StatefulWidget
воссоздавать / перестраивать с новыми аргументами конструктора, когда его родители вызывают setState
при повторном использовании предыдущего State
и позволяя ему хранить значения, хранящиеся в его изменяемых полях-членах.