169 похожих чатов

Всем доброго времени суток. Подскажите пожалуйста через что лучше передавать

информацию между экранами - Инхириты или Провайдер ? или есть более удобные вещи?

4 ответов

20 просмотров

Provider — это универсальный InheritedWidget, в который ты можешь через механизм generics подсунуть любой свой класс. Сделан для того, чтобы под каждый класс не писать отдельный InheritedWidget

Naz_Ros🐊- Автор вопроса
Sergio Molchanovsky
Provider — это универсальный InheritedWidget, в ко...

все понял. Благодарю за совет, просто думал через инхириты расписывать все нужно .

Naz_Ros🐊
все понял. Благодарю за совет, просто думал через ...

InheritedWidget нужен, чтобы потом доставать его с помощью вот такой записи MyClass.of(context) Например, MediaQuery, ScaffoldMessenger, Theme — это всё InheritedWidget'ы. Проблема в том, что каждый раз его оформлять очень долго, нужно много писанины. Вот пример из доки: class FrogColor extends InheritedWidget { const FrogColor({ super.key, required this.color, required super.child, }); final Color color; static FrogColor? maybeOf(BuildContext context) { return context.dependOnInheritedWidgetOfExactType<FrogColor>(); } static FrogColor of(BuildContext context) { final FrogColor? result = maybeOf(context); assert(result != null, 'No FrogColor found in context'); return result!; } @override bool updateShouldNotify(FrogColor oldWidget) => color != oldWidget.color; } Поэтому придумали провайдер. Кладешь в него через Provider<FrogColor>(create: (_) => FrogColor()) Достаешь Provider.of<FrogColor>() или даже короче context.watch<FrogColor>()

Naz_Ros🐊- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта