StreamProvider передает значения и обновляет результат потока - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь передать переменную в StreamProvider, когда приложение загружает изменяющиеся значения endTime, не изменяет вывод / данные потока.

class _PrayersGlobalState extends State<PrayersGlobal> {
  PrayersViewModel modelGlobal = serviceLocator<PrayersViewModel>();

  @override
  Widget build(BuildContext context) {
    modelGlobal.streamData(
      prayerType: 1,
      userId: 1,
      updatedOn: '2020-04-10',
      endTime: '2020-05-' + ((1 + _random.nextInt(5)) * 5).toString(),
    );
    return MultiProvider(
      providers: [
        StreamProvider<List<Prayers>>(
          create: (context) => modelGlobal.streamPrayers,
          catchError: (context, err) {
            print('Error : ' + err.toString());
            return;
          },
        ),
      ],

Вот функция streamData для получения потока из подписки GraphQL

void streamData({
    int prayerType,
    int userId,
    String updatedOn,
    String endTime,
  }) {
    final Stream<Prayers> streamPs = _graphQLService.getPrayerStream(
      prayerType: prayerType,
      userId: userId,
      updatedOn: updatedOn,
      endTime: endTime,
    );
    print('EndTime In Model : $endTime');
    this._streamPrayers.sink.addStream(streamPs);
  }

1 Ответ

1 голос
/ 30 апреля 2020

Этот код работал на 100% правильно. Я использовал флаттер, называемый hasura_connect

https://pub.dev/packages/hasura_connect

Я пропустил прочтение документации. отдельная функция, которая должна вызываться для передачи различных значений переменной.

//change values of variables for PAGINATIONS
snapshot.changeVariable({"limit": 20});
...