Size: a a a

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

2020 October 13

V

Vyacheslav in Dart & Flutter по-русски
хотя вот мне не понятно, что в этом билдере ты показываешь из кубита? Не вижу обращения к стейту
источник

V

Vyacheslav in Dart & Flutter по-русски
вижу, что ты на кнопку повесил вызов метода в кубите, но я бы его написал так:
 BlocProvider.of<ContactsCubit>(context).updateUsersContacts(...)
источник

S

Sergey in Dart & Flutter по-русски
так мне и не нужен стейт там. мне нужно диспатчнуть экшн только
источник

V

Vyacheslav in Dart & Flutter по-русски
тогда тебе билдер и не нужен
источник

S

Sergey in Dart & Flutter по-русски
в провайдер оборачивать?(
источник

V

Vyacheslav in Dart & Flutter по-русски
Vyacheslav
вижу, что ты на кнопку повесил вызов метода в кубите, но я бы его написал так:
 BlocProvider.of<ContactsCubit>(context).updateUsersContacts(...)
вот так вызываешь свой экшн и все
источник

V

Vyacheslav in Dart & Flutter по-русски
Sergey
в провайдер оборачивать?(
нет
источник

V

Vyacheslav in Dart & Flutter по-русски
Vyacheslav
вижу, что ты на кнопку повесил вызов метода в кубите, но я бы его написал так:
 BlocProvider.of<ContactsCubit>(context).updateUsersContacts(...)
ты вот так уже в контексте находишь свой блок и к нему обращаешься
источник

S

Sergey in Dart & Flutter по-русски
так прикл в том, что я не вижу блока в контексте. потому что я навигатором пушнулся на новый роут
источник

V

Vyacheslav in Dart & Flutter по-русски
тогда есть вариант заинжектить свой кубит, и обращаться к нему вне контекста
источник

V

Vyacheslav in Dart & Flutter по-русски
я использую get_it для такого
источник

V

Vyacheslav in Dart & Flutter по-русски
в провайдере тогда нужно create: (context) => sl<AppCubit>()
источник

V

Vyacheslav in Dart & Flutter по-русски
и потом уже вне контекста будешь обращаться к этому экземпляру кубита
источник

Ю

Юрий in Dart & Flutter по-русски
Были бы стейтменеджменты - применение в куче найдется
источник

S

Sergey in Dart & Flutter по-русски
Vyacheslav
тогда есть вариант заинжектить свой кубит, и обращаться к нему вне контекста
заработало только когда я обернул сначала в отдельный провайдер, а потом еще в билдер, просто в провайдере все равно не видело почему-то блок в контексте
источник

S

Sergey in Dart & Flutter по-русски
а как мне инициировать ребилд на родительской странице. я стейт то по-сути не поменял (количество элемнетов в листе). поменял только поля у элемента. поэтому родительская страница игнорирует это и не перерисовуется
источник

V

Vyacheslav in Dart & Flutter по-русски
Sergey
а как мне инициировать ребилд на родительской странице. я стейт то по-сути не поменял (количество элемнетов в листе). поменял только поля у элемента. поэтому родительская страница игнорирует это и не перерисовуется
почитай у ResoCoder, там вполне себе хороший пример с кубитом и блоком. А ребилд у блокбилдера будет только в случае изменения стейта блока/кубита
https://resocoder.com/2020/08/04/flutter-bloc-cubit-tutorial/
источник

V

Vyacheslav in Dart & Flutter по-русски
изменение стейта ты можешь сам инициировать, в кубите это emit()
источник

S

Sergey in Dart & Flutter по-русски
ну оно у меня на второй странице вызывает апдейт в базе.
следом в этом апдейте я эмичу новый стейт уже с измененной базой. но предыдущая страница не реагирует на это. но если я релоадну аппку, то я вижу свои изменения, которые сделал в тот раз. то есть они происходят в базе, но блок почему-то не реагирует на это
источник

S

Sergey in Dart & Flutter по-русски
вот тут я эмичу новый стейт сразу же после обновления
источник