«Поставщик Flutter без контекста» относится к методам и подходам использования пакета Flutter Provider без прямого доступа к объекту BuildContext
. Вот несколько способов добиться этого:
-
Использование ProxyProvider. Класс ProxyProvider позволяет вам предоставлять значение на основе других поставщиков без необходимости использования
BuildContext
. Используя ProxyProvider, вы можете создать нового поставщика, который зависит от существующих поставщиков, не обращаясь к контексту. -
Использование виджета Consumer. Виджет Consumer из пакета Provider позволяет получить доступ к предоставленным значениям без указания
BuildContext
. Вы можете обернуть свой виджет с помощью Consumer и получить доступ к необходимым значениям с помощью функции обратного вызова, которая получает предоставленные значения в качестве параметров. -
Использование ProviderContainer: ProviderContainer — это контейнер, который содержит поставщиков и позволяет вам получать к ним доступ без необходимости использования
BuildContext
. Создав экземпляр ProviderContainer, вы можете получить доступ к предоставленным значениям непосредственно из контейнера. -
Использование метода Provider.of. Хотя Provider.of обычно требует
BuildContext
, вы можете использовать параметрlisten
, чтобы установить для него значениеfalse
. Таким образом, вы можете получить доступ к предоставленным значениям, не запуская перестроения или не используяBuildContext
.