Size: a a a

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

2020 September 10

MB

Michael Bazilique in Dart & Flutter по-русски
ребят, подкажите:
Есть стрим:
Stream<МойОбьект> _data;

Есть init метод в котором хочу переодически делать реквест:

 void _init() async {
   _data = Stream<UnsyncedData>.periodic(Duration(seconds: 15), (_)  {
     // здесь хочу сделать ассинхроничный запрос и вернуть нужный обьект.
   });
 }
Будет кто-то добр обьяснить? Я в ассинхронности очень поверхностно разбираюсь
источник

MB

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

GA

Gevork Arzumanyan in Dart & Flutter по-русски
les forest
ты должен разные стейты отдавать
та нет же
он отрабатывает когда запрос проходит
источник

GA

Gevork Arzumanyan in Dart & Flutter по-русски
и если смотреть в дебагере после  того как запроспрошел
то отрабатывают те что я отправлял параллельно с запросом (как  будто в очереди стояли)
источник

ВД

Виктор Дунаев... in Dart & Flutter по-русски
Artem Tkachenko
bool isTypeOf<ThisType, OfType>() => _Instance<ThisType>() is _Instance<OfType>;

class _Instance<T> {}


if (isTypeOf<T, int>()) {
// T is int
}

if (isTypeOf<T, String>()) {
// T is String
}

if (isTypeOf<T, Map<String, double>>()) {
// T is <String, double>{}
}
Интересное решение! Большое спасибо!
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
les forest
блок не отрабатывает потому что ты ему один и тот же стейт передаешь
Блок будет работать отлично, если один и тот же стейт давать с разными данными, главное не использовать
buildWhen: (previousState, state) =>
               state.runtimeType != previousState.runtimeType,
источник

GA

Gevork Arzumanyan in Dart & Flutter по-русски
Кирилл Апарин
Блок будет работать отлично, если один и тот же стейт давать с разными данными, главное не использовать
buildWhen: (previousState, state) =>
               state.runtimeType != previousState.runtimeType,
дело не в стейтах парни
он события не мапи пока запрос dio не выполнит
источник

GA

Gevork Arzumanyan in Dart & Flutter по-русски
Gevork Arzumanyan
дело не в стейтах парни
он события не мапи пока запрос dio не выполнит
блок  ждет выполнениия и все
очевидно  же
источник

AP

Andreu Puzikov in Dart & Flutter по-русски
может подскажет кто по блоку. пишу поэтапное заполнение полей, FieldsState вывожу билдером, далее толкаю евент на завершение заполнения, который эмитит FieldsLoading и FieldsState снова. так вот, FieldsLoading отлавливаю BlocBuilder'ом в кнопке, поэтому в основном билдере мне надо пропустить FieldsLoading, что я в buildWhen и написал !(prev is fieldsState  && curr is fieldsLoading), но тогда получается, что в основном билдере заменяется fieldsState на fieldsState и в итоге экран ен билдится по новой, а остается предыдущий. Как можно решить проблему?
источник

AP

Andreu Puzikov in Dart & Flutter по-русски
как я понимаю проблема в том, что он сравнивает fieldsState и считает их одинаковыми, поэтому и не билдит, так?
источник

GA

Gevork Arzumanyan in Dart & Flutter по-русски
Andreu Puzikov
как я понимаю проблема в том, что он сравнивает fieldsState и считает их одинаковыми, поэтому и не билдит, так?
именно
источник

AP

Andreu Puzikov in Dart & Flutter по-русски
я так понимаю, для адекватного сравнения нужно Equatable в PayRecordResponse унаследовать еще?
источник

lf

les forest in Dart & Flutter по-русски
Andreu Puzikov
я так понимаю, для адекватного сравнения нужно Equatable в PayRecordResponse унаследовать еще?
da
источник

MA

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

ВД

Виктор Дунаев... in Dart & Flutter по-русски
Artem Tkachenko
bool isTypeOf<ThisType, OfType>() => _Instance<ThisType>() is _Instance<OfType>;

class _Instance<T> {}


if (isTypeOf<T, int>()) {
// T is int
}

if (isTypeOf<T, String>()) {
// T is String
}

if (isTypeOf<T, Map<String, double>>()) {
// T is <String, double>{}
}
К сожалению неадекватно реагирует на тип Null. Всегда выдаёт true, какой бы OfType ни был. И тип void признаёт как dynamic. А мне как раз тип void интереснее всего. Как бы его отделить от всех?
источник

IP

Ivan Pavlov in Dart & Flutter по-русски
Maks Andrienko
Добрый день всем
подскажите , как мне из первого экрана обновить состояние второго ?
я че то до конца щас не пойму как это сделать. вроде должно быть что то легкое, а в голову не лезит ничего
Гуглить или Яндексить StateManaganet 🙃
На официально сайте Flutter есть примеры с Provider. В сети полного остального)
На мой вкус самые адекватные решения в зависимости от задач - Provider, RxDart-GetIt, BLoC. Остальное не нужно.
источник

MA

Maks Andrienko in Dart & Flutter по-русски
хорошо
спасибо)
источник

O

Ophelia ^_^ in Dart & Flutter по-русски
Добрый день) проблемы с установкой. Не получается включить флатер к командной строке. Как исправить?
источник

ВД

Виктор Дунаев... in Dart & Flutter по-русски
Александр Георгиевич
final factoriesFromSql = <Type, Function>{
   BaseWord: (sql) => BaseWord.fromSql(sql: sql),
   WordType1: (sql) => WordType1.fromSql(sql: sql),
   WordType2: (sql) => WordType2.fromSql(sql: sql),
 };
Так можно. для каждого типа прописать функцию и вызывать её.
Всё хорошо! Только void не могу определить. Удивительно, что он не подходит под dynamic (вроде как именно к нему он кастится). Т.е. это самостоятельный тип, но задать его в мапе не получается. А void мне как раз больше всего интересен.
источник

АГ

Александр Георгиевич... in Dart & Flutter по-русски
Виктор Дунаев
Всё хорошо! Только void не могу определить. Удивительно, что он не подходит под dynamic (вроде как именно к нему он кастится). Т.е. это самостоятельный тип, но задать его в мапе не получается. А void мне как раз больше всего интересен.
сделать CustomVoid?
источник