Size: a a a

Dart & Flutter по-русски

2020 September 30

V

Vyacheslav in Dart & Flutter по-русски
Дмитрий Щербаков
Напиши что ты хочешь сделать я попытаюсь объяснить 😂
Блоки в провайдере по порядку: блок А, блок Б
Блок А - авторизация, в стейте Logged есть инстанс юзера.
Блок Б - загрузка данных для авториз юзера
При ЗАПУСКЕ приложения в блоке Б мне нужно проверить состояние блока А и если юзер авторизован, запустить ивент загрузки данных. Для этого мне нужно из блока А получить айди юзера (проблема:()
Потом в течение работы приложения, слушать стейты блока А и если будет логаут-логин снова подгружать данные (с этим проблем нет)
При запуске приложения я не могу в блоке Б получить инстанс юзера из стейта Logged, потому что смена стейта уже произошла раньше инита блока Б.
вот код https://gist.github.com/CoMatu/548493bef90667299ee8cf1b00e80d08
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
Vyacheslav
Блоки в провайдере по порядку: блок А, блок Б
Блок А - авторизация, в стейте Logged есть инстанс юзера.
Блок Б - загрузка данных для авториз юзера
При ЗАПУСКЕ приложения в блоке Б мне нужно проверить состояние блока А и если юзер авторизован, запустить ивент загрузки данных. Для этого мне нужно из блока А получить айди юзера (проблема:()
Потом в течение работы приложения, слушать стейты блока А и если будет логаут-логин снова подгружать данные (с этим проблем нет)
При запуске приложения я не могу в блоке Б получить инстанс юзера из стейта Logged, потому что смена стейта уже произошла раньше инита блока Б.
вот код https://gist.github.com/CoMatu/548493bef90667299ee8cf1b00e80d08
Я бы сделал так - при запуске приложения кидал в блок А евент на авторизацию, если она успешна кидал бы из блока А в блок Б эвент на получение данных (параметром передавал юзер ид)
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
а хранить инстанс юзера не обязательно в стейте блока, можно в переменной саомого блока и повесить геттер на нее
источник

V

Vyacheslav in Dart & Flutter по-русски
но в этот момент у меня блок Б не инит еще
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
инициализируй все блоки в мейне до runApp
источник

V

Vyacheslav in Dart & Flutter по-русски
спасибо, буду смотреть
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
инициализируй первым тот блок, который понадобится второму
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
и передавай его параметром во второй блок в момент инициализации
источник

ИЦ

Илья Цымбалюк... in Dart & Flutter по-русски
Господа, как эти две кнопки заставить вызывать одно и ту же функцию ?
источник

V

Vyacheslav in Dart & Flutter по-русски
Илья Цымбалюк
Господа, как эти две кнопки заставить вызывать одно и ту же функцию ?
верхнюю оставить по дефолту ))
источник

ИЦ

Илья Цымбалюк... in Dart & Flutter по-русски
Vyacheslav
верхнюю оставить по дефолту ))
так в том то и дело, мне нужно не вовзращать назад. А выполнять мою функцию
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
Vyacheslav
спасибо, буду смотреть
BlocProvider<AuthBloc>(
         create: (context) =>
             AuthBloc(NonLoggedAuthState())..add(StartLocalAuthEvent()),
       ),
       BlocProvider<RootBloc>(
         create: (context) =>
             RootBloc(authBloc: BlocProvider.of<AuthBloc>(context)),
       ),

мне кажется их местами надо поменять, если будешь из auth дергаьт root
источник

V

Vyacheslav in Dart & Flutter по-русски
Дмитрий Щербаков
BlocProvider<AuthBloc>(
         create: (context) =>
             AuthBloc(NonLoggedAuthState())..add(StartLocalAuthEvent()),
       ),
       BlocProvider<RootBloc>(
         create: (context) =>
             RootBloc(authBloc: BlocProvider.of<AuthBloc>(context)),
       ),

мне кажется их местами надо поменять, если будешь из auth дергаьт root
наоборот, я из рута ауф дергаю
источник

V

Vyacheslav in Dart & Flutter по-русски
сначала узнать, свой ли пацан, знает ли пароли
источник

V

Vyacheslav in Dart & Flutter по-русски
Дмитрий Щербаков
BlocProvider<AuthBloc>(
         create: (context) =>
             AuthBloc(NonLoggedAuthState())..add(StartLocalAuthEvent()),
       ),
       BlocProvider<RootBloc>(
         create: (context) =>
             RootBloc(authBloc: BlocProvider.of<AuthBloc>(context)),
       ),

мне кажется их местами надо поменять, если будешь из auth дергаьт root
в гисте видно, что блок А у меня приходит параметром в блок Б и в Б я слушаю стейты блока А
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
auth это A root это Б ?
источник

V

Vyacheslav in Dart & Flutter по-русски
да
источник

ЮГ

Юрий Гуцуляк... in Dart & Flutter по-русски
Привет, а кто-то может помочь на возмездной основе составить тз для приложения на Flutter ?
источник

ЮГ

Юрий Гуцуляк... in Dart & Flutter по-русски
@Hottabych  о) а ты давно стал изучать Flutter ?
источник

SH

Sergey Hottabych in Dart & Flutter по-русски
Юрий Гуцуляк
@Hottabych  о) а ты давно стал изучать Flutter ?
Привет) вот за карантин выучил
источник