Сгенерированный код компонента
Как и для страницы, для каждого компонента FlutterFlow создаёт два файла: класс Widget и класс Model.
инфо
Про пример
Разбор построен на сгенерированном коде демонстрационного приложения EcommerceFlow. Сам код лежит в репозитории на GitHub.
Класс ComponentModel
ComponentModel отвечает за состояние и поведение отдельного компонента на странице. Как и модели страниц, эти классы наследуют FlutterFlowModel, поэтому устроены одинаково. Состояние каждого компонента изолировано, а сам компонент переиспользуется.
Жизненный цикл ComponentModel и его виджета такой же, как у страницы, — см. сгенерированный код страницы.
Действия onComponentLoad
Действия из триггера onComponentLoad попадают в addPostFrameCallback внутри initState — то есть выполняются после того, как дерево виджетов построено.
@override
void initState() {
super.initState();
_model = createModel(context, () => ProductListPageModel());
// действия при загрузке компонента
SchedulerBinding.instance.addPostFrameCallback((_) async {
await _model.updateTotalCost(context);
safeSetState(() {});
});
}