Эквивалент Provider.value в Riverpod Flutter

Я пытался перенести свои старые проекты с provider на riverpod. Что эквивалентно использованию Provider.value в riverpod? Что я пытаюсь сделать, так это после аутентификации я хочу иметь доступ к пользователю из всех мест, поэтому я передаю User вниз по дереву виджетов, используя Provider.value следующим образом:

Provider<AuthUser>.value(value: user);

person Bigyan Ghimire    schedule 29.05.2021    source источник


Ответы (2)


Основным преимуществом Riverpod является то, что он не привязан к дереву виджетов, поэтому нет необходимости использовать .value, если провайдер уже существует на другом маршруте, он будет использовать его, для лучшего примера вам нужно будет загрузить некоторый код о том, что вы пытаетесь закодировать более конкретный ответ

person EdwynZN    schedule 30.05.2021
comment
Отредактировал вопрос о том, чем хочу заниматься. - person Bigyan Ghimire; 31.05.2021
comment
watch (myAuthProvider) .user будет работать одинаково во всех ваших приложениях, ProviderContainer из riverpod находится в начале вашего приложения, поэтому нет необходимости в .value - person EdwynZN; 31.05.2021

У меня похожий вариант использования. Что вы могли бы сделать, так это иметь StateProvider, и после того, как пользователь вошел в систему, вы обновляете состояние этого поставщика с помощью пользовательских данных. Отныне другие поставщики и виджеты могут получить пользователя, получив состояние этого поставщика, например, смотреть.

person wujek    schedule 02.07.2021