Size: a a a

Flutter Developers — русскоговорящее сообщество

2021 February 03

A

Artur in Flutter Developers — русскоговорящее сообщество
Avoid print calls in production code. Как переключить с production в debug?
источник

A

Artur in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Но надо понимать, что провайдер обладает некоторыми неприятными особенностями, в том числе и из за некоторых заблуждений Реми
Какие особенности например?
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Artur
Какие особенности например?
Например ты не можешь сделать:

Provider<A>(
 create: (_) => A(b: Provider.of<B>(context)),
);
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Для этого надо использовать ProxyProvider
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Ты не можешь сделать context.watch в didChangeDependencies, причем не потому что оно нельзя или так не должно работать, а просто потому, что Реми там assert не нужный воткнул в следствии своих заблуждений.
источник

A

Artur in Flutter Developers — русскоговорящее сообщество
Хм
источник

A

Artur in Flutter Developers — русскоговорящее сообщество
Все грешны)
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Причем Provider.of<T>(context, listen: true) - можешь, а context.watch<T>(), являющийся шоткатом к первому - не можешь
источник

ЯМ

Ярослав Макаров... in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Например ты не можешь сделать:

Provider<A>(
 create: (_) => A(b: Provider.of<B>(context)),
);
Я так понимаю riverpod решает и эту проблему провайдера

class FakeHttpClient {
 Future<String> get(String url) async {
   await Future.delayed(const Duration(seconds: 1));
   return 'Response from $url';
 }
}

final fakeHttpClientProvider = Provider((ref) => FakeHttpClient());
final responseProvider = FutureProvider<String>((ref) async {
 final httpClient = ref.read(fakeHttpClientProvider);
 return httpClient.get('https://resocoder.com');
});
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Ярослав Макаров
Я так понимаю riverpod решает и эту проблему провайдера

class FakeHttpClient {
 Future<String> get(String url) async {
   await Future.delayed(const Duration(seconds: 1));
   return 'Response from $url';
 }
}

final fakeHttpClientProvider = Provider((ref) => FakeHttpClient());
final responseProvider = FutureProvider<String>((ref) async {
 final httpClient = ref.read(fakeHttpClientProvider);
 return httpClient.get('https://resocoder.com');
});
ProxyProvider её решает
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Ну или банальный стейтфул виджет
источник

ЯМ

Ярослав Макаров... in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
ProxyProvider её решает
Ну да, но вложенность же больше получается
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Просто Реми немножко изначально по дуратски спроектировал
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Ярослав Макаров
Ну да, но вложенность же больше получается
Так тебе эта вложенность и нужна
источник

ЯМ

Ярослав Макаров... in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Так тебе эта вложенность и нужна
Не, я именно про внешний вид кода
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
У риверпода уже другие проблемы с внешним видом будут.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Ну или я просто пока не научился готовить kiwi и риверпод
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Я банально не понимаю где должны быть обозначены скоупы
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
В глобальных переменных?)
Чото мех
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
В мейне при старте приложения, тогда вообще в чем смысл?)
источник