Мне нужно создать форму на основе нескольких страниц, проверить и отправить по окончании. Как я могу реализовать что-то подобное, используя пакеты provider и flutter bloc? Я пробовал создать такую форму, используя хранилище, но считаю, что это плохая практика. У кого-нибудь есть идеи? Спасибо раньше!
Форма создания Flutter на основе нескольких страниц
Ответы (1)
Я предлагаю вам использовать плагин flow_builder
(Link), который будет обрабатывать поток за вас на основе государство. Пример в репозитории - это то, что вам нужно. Сначала вы создадите модель, которая будет использоваться в качестве состояния
class Profile {
const Profile({this.name, this.age, this.weight});
final String name;
final int age;
final int weight;
Profile copyWith({String name, int age, int weight}) {
return Profile(
name: name ?? this.name,
age: age ?? this.age,
weight: weight ?? this.weight,
);
}
}
Затем вы можете использовать виджет FlowBuilder
следующим образом:
FlowBuilder<Profile>(
state: const Profile(),
onGeneratePages: (profile, pages) {
return [
MaterialPage(child: NameForm()),
if (profile.name != null) MaterialPage(child: AgeForm()),
];
},
);
Затем вы можете обновить виджет на страницах формы, используя:
context.flow<Profile>().update((profile) => profile.copyWith(name: _name));
person
Amir_P
schedule
05.01.2021
эй, приятель, мне неясно одно. Куда я должен загрузить данные? В этом случае у меня есть форма с несколькими страницами. Могу ли я загружать данные в ProfileFlow или в ProfileNameForm?
- person AFetter; 26.06.2021
Мне непонятно, что и зачем вы загружаете. Вы можете задать вопрос подробно и прокомментировать ссылку здесь. Я проверю позже. @AFetter
- person Amir_P; 26.06.2021