Одной из неотъемлемых частей многих приложений является проверка формы. Разработчики мобильных приложений всегда имеют дело с формами, потому что важно показывать пользователям соответствующие предупреждения всякий раз, когда они неправильно заполняют форму.

Разработчики должны выполнить эту задачу надлежащим образом, и для этого им необходимо написать определенную логику проверки. Здесь вы узнаете, как выполнить проверку формы с помощью flutter Bloc. Возникли ли у вас какие-либо проблемы при реализации этого шага и поиске опытного разработчика для правильного выполнения процесса проверки формы в вашем бизнес-приложении? Тогда наймите разработчика Flutter из bosctechlabs.com уже сегодня.

Что означает Флаттер Блок?

Flutter Bloc — это управление состоянием во Flutter. Вы можете получить к нему доступ, чтобы обрабатывать все состояния, которые вы хотите выполнить в приложениях флаттера. Это также действует как лучший и самый простой способ управления состоянием. Это позволяет вам без особых усилий добавлять любые изменения в приложение флаттера.

Независимо от вашего уровня, вы можете быстро изучить концепцию и добавить эту зависимость в свой проект. Google создал Bloc, который представляет собой не что иное, как шаблон проектирования, помогающий отделить бизнес-логику от уровня осведомленности. Кроме того, он позволяет разработчику эффективно использовать код.

Flutter Bloc имеет несколько виджетов, таких как Bloc Builder, Bloc Selector, Bloc provider, MultiBlocProvider, Bloc Listener и Multi Bloc Listener. Каждый виджет выполняет определенное действие, поэтому вы должны использовать тот, который подходит для вашего проекта Flutter.

Как сделать проверку формы во Flutter

Flutter SDK предоставляет готовый виджет и функциональные возможности, чтобы упростить жизнь пользователя при доступе к проверке формы. Для проверки формы существуют два разных подхода: виджет формы и пакет провайдера. Вот шаги, которые нужно выполнить, чтобы начать проверку формы во Flutter. Убедитесь, что вы правильно выполняете каждый шаг, чтобы получить желаемый результат.

  • Создайте форму во Flutter; например, создайте простую страницу входа, используя такие поля, как адрес электронной почты, пароль, номер телефона и имя.
  • Настройте форму для проверки
  • Проверка ввода и средства форматирования ввода
  • Доступ к методам Regex и методам расширения Dart в проекте флаттера
  • Вам необходимо создать поля ввода, необходимые для формы.
  • Сделать произвольное поле формы.
  • Выполните проверку формы с помощью провайдера, блока или других методов.

Здесь вы подробно узнаете о блоке, потому что это лучший способ проверить форму. Библиотека блоков отображает пакет Flutter для проверки полей. Его обычно называют form_bloc.

Как выполнить проверку формы с помощью блока флаттера

Как только вы реализуете проверку формы с помощью flutter BLoC, вам нужно добавить зависимость в файл pubspec.ymal, чтобы получить все свойства блока. В результате вы можете эффективно использовать его для управления состоянием.

зависимости:

порхать:

SDK: флаттер

купертино_icons: ^ 1.0.2

rxdart: ^0.27.3

флаттер_блок: ^ 8.0.1

Здесь используются две зависимости rxdart и flutter_bloc. RxDart расширяет возможности контроллеров Stream и Dart Streams. Flutter_bloc — это использование Bloc Provider для рендеринга Counter-cubit на Counter-page и последующей реакции на изменения состояния с помощью BlocBuilder.

Создайте класс cubit (login_bloc_cubit.dart) для приложения, которое является абстрактным классом. Cubit расширяет базу блоков. Затем создайте класс с именем LoginScreenCubit(). После этого определите конструктор аргументов и все используемые вами контроллеры. Вот как это выглядит!

ЛогинЭкранКубит() : супер(ЛогинИнициал());

// определяем контроллеры

окончательный _userNameController = BehaviorSubject();

окончательный _passwordController = BehaviorSubject();

окончательный _phonenoController = BehaviorSubject();

Вы можете получить данные с помощью определенных и потоковых контроллеров, как указано ниже.

Stream get userNameStream =› _userNameController.stream;

Поток получить парольStream => _passwordController.stream;

Поток get phonenoStream =› _phonenoController.stream;

Теперь пришло время создать метод для очистки данных. Для этого вы можете использовать следующий код.

void dispose() {

обновитьИмяПользователя('');

обновить пароль ('');

обновитьНомерТелефона('');

}

Затем добавьте методы проверки. Это один из жизненно важных шагов во всем проекте, на котором вы можете проверить ценность пользователей.

//проверка имени пользователя

voidupdateUserName (строка имя_пользователя) {

if (userName.length‹ 3) {

_userNameController.sink.addError("Пожалуйста, введите не менее 3 слов");

} еще {

_userNameController.sink.add (имя пользователя);

}

}

//проверка пароля

void updatePassword (строковый пароль) {

if (password.length‹ 4) {

_passwordController.sink.addError("Пожалуйста, введите более 4 слов");

} еще {

_passwordController.sink.add(пароль);

}

}

//проверка номера телефона

void updatePhoneNumber(String phoneNo) {

if (phoneNo.length == 10) {

_phonenoController.sink.add(номер телефона);

}

еще {

_phonenoController.sink.addError("Пожалуйста, введите действительный номер телефона");

}

}

Затем создайте класс провайдера (bloc_provider.dart), который передает всех провайдеров, используемых в приложении Flutter.

Списокблокпровидерс = [

BlocProvider(создать: (контекст) =>LoginPageCubit()),

];

Затем вам нужно обернуть MaterialApp() с помощью MultiBlocProvider(), который вы уже определили в bloc_provider.dart в main.

Мультиблокпровайдер(

провайдеры: blockProviders,

ребенок: constMaterialApp(

debugShowCheckedModeBanner: false,

домашняя страница: ЛогинЭкран(),

),

);

Затем создайте класс с именем «login_bloc_state.dart», в котором вам нужно определить LoginBloc{}, а затем LoginInitial, который расширяется до LoginBloc{}.

абстрактный класс LoginBloc {}

classLoginInitial расширяет LoginBloc {}

Наконец, в LoginScreen(login_screen.dart) вы должны определить LoginScreenCubit и добавить initiState(){}. При этом вы можете добавить WidgetsBinding.instance и правильно получить доступ к методу dispose.

ЛогинЭкранCubit? _логинЭкранКубит;

@переопределить

void initState() {

WidgetsBinding.instance?.addPostFrameCallback((_) {

_loginScreenCubit?.dispose();

});

супер.initState();

}

Наконец, вам нужно добавить BlocProvider в _loginScreenCubit. Это поможет вам получить правильный вывод формы входа с такими значениями, как имя пользователя, пароль и номер телефона.

_loginScreenCubit = BlocProvider.of(

контекст,

слушать: ложь,

);

Создайте пользовательский интерфейс и получите доступ к StreamBuilder для текстового поля для обновления данных в части пользовательского интерфейса должным образом. Вот код для использования.

StreamBuilder(

поток: _loginScreenCubit?.passwordStream,

строитель: (контекст, снимок) {

вернутьтекстовое поле(

onChanged: (текст) {

_loginScreenCubit?.updatePassword(текст);

},

украшение: constInputDecoration(

labelText: «Пароль»,

),

тип клавиатуры: TextInputType.text);

}),

Когда мы запускаем приложение, мы получаем вывод на экран, как показано ниже.

Для нижней кнопки мы также используем StreamBuilder. В этом мы передаем _loginScreenCubit в потоке и cheBloc Widgetsck, независимо от того, проверены данные или нет? после этого мы возвращаем GestureDetector() и применяем условие, что если данные обновляются, то этот экран переходит к следующему экрану, в противном случае кнопка входа в систему отключена. Когда снимок. данные верны, тогда цвет кнопки будет бирюзовым, в противном случае он будет серым. Ознакомьтесь с нашим руководством по созданию плавающей кнопки действия во FLutter.

_нижняя кнопка () {

возврат StreamBuilder(

поток: _loginScreenCubit?.validateForm,

строитель: (контекст, снимок) {

возврат Детектор жестов(

onTap: () {

if (snapshot.hasData) {

Навигатор.push(

контекст, MaterialPageRoute(builder: (context) => Home1()));

}

},

ребенок: Контейнер(

украшение: BoxDecoration(

цвет: snapshot.hasData ? Цвета.бирюзовый : Цвета.серый,

borderRadius: BorderRadius.circular(30)),

рост: 70,

ширина: MediaQuery.of(context).size.width,

дочерний элемент: константный центр (

ребенок: Текст(

'Авторизоваться',

стиль: TextStyle(

цвет: Цвета.белый,

fontWeight: FontWeight.bold,

размер шрифта: 27),

),

),

),

);

},

);

}

Заключение

В этом блоге показано, как выполнить проверку формы во Flutter с помощью Bloc. Кроме того, существует множество методов для выполнения одних и тех же действий. Было бы полезно, если бы вы использовали правильную технику, подходящую для вашего проекта Flutter.