Flutter BLoC(плагин flutter_bloc) странное поведение при фокусировке ввода. Дополнительный государственный вызов

У меня проблема с пониманием одного поведения в шаблоне BLoC. Использование плагина flutter_bloc

Я сделал проект на основе этого: https://felangel.github.io/bloc/

Ничего особенного. У меня есть две страницы с кнопками для навигации между ними. Так что, если я перейду на вторую страницу, а затем вернусь на страницу входа и сосредоточусь на любом поле ввода, я увижу один дополнительный вывод ("состояние");

Шаг за шагом:

  1. Запустите приложение -> консоль отладки флаттера: LoginInitial
  2. Нажмите "Вторая страница"
  3. Нажмите "Страница входа" -> консоль отладки флаттера: LoginInitial
  4. Сосредоточьтесь на любом поле ввода -> консоль отладки флаттера: LoginInitial

Есть идеи, почему это происходит на 4-м шаге?

Страница авторизации:

Widget build(BuildContext context) {
return BlocBuilder<LoginEvent, LoginState>(
  bloc: _loginBloc,
  builder: (
    BuildContext context,
    LoginState state,
  ) {
    print('  $state');
    if (state is LoginFailure) {
      _onWidgetDidBuild(() {
        Scaffold.of(context).showSnackBar(
          SnackBar(
            content: Text('${state.error}'),
            backgroundColor: Colors.red,
          ),
        );
      });
    }

    return Form(
      child: Column(
        children: [
          TextFormField(
            decoration: InputDecoration(labelText: 'username'),
            controller: _usernameController,
          ),
          TextFormField(
            decoration: InputDecoration(labelText: 'password'),
            controller: _passwordController,
            obscureText: true,
          ),
          RaisedButton(
            onPressed:
                state is! LoginLoading ? _onLoginButtonPressed : null,
            child: Text('Login'),
          ),
          Container(
            child:
                state is LoginLoading ? CircularProgressIndicator() : null,
          ),
        ],
      ),
    );
  },
);

}

Полный проект: https://github.com/ViktorKirjanov/flutter_login_issue

0 ответов

Другие вопросы по тегам