Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter StreamProvider传递值并更新流结果_Flutter_Dart_Provider - Fatal编程技术网

Flutter StreamProvider传递值并更新流结果

Flutter StreamProvider传递值并更新流结果,flutter,dart,provider,Flutter,Dart,Provider,我试图在应用程序加载后将一个变量传递给StreamProviderput,更改endTime值不会更改流输出/数据 class _PrayersGlobalState extends State<PrayersGlobal> { PrayersViewModel modelGlobal = serviceLocator<PrayersViewModel>(); @override Widget build(BuildContext context) {

我试图在应用程序加载后将一个变量传递给
StreamProvider
put,更改
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;
          },
        ),
      ],
class\u ragersglobalstate扩展状态{
PrayersViewModel modelGlobal=serviceLocator();
@凌驾
小部件构建(构建上下文){
modelGlobal.streamData(
祈祷类型:1,
用户ID:1,
更新日期:“2020-04-10”,
endTime:'2020-05-'+((1+_random.nextInt(5))*5.toString(),
);
回程多供应商(
供应商:[
流提供者(
创建:(上下文)=>modelGlobal.streams,
catchError:(上下文,err){
打印('Error:'+err.toString());
返回;
},
),
],
下面是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);
  }

void streamData({
int-prayerType,
int userId,
字符串已更新,
字符串结束时间,
}) {
最终流streamPs=\u graphQLService.GetGragerStream(
祈祷类型:祈祷类型,
userId:userId,
updatedOn:updatedOn,
endTime:endTime,
);
打印('EndTime In Model:$EndTime');
这个._streamPrayers.sink.addStream(streamPs);
}

此代码100%正常工作,我使用的是一个名为
hasura_connect的颤振软件包

我没有正确阅读文档,因为需要调用一个单独的函数来向变量传递不同的值

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

介意发布你的
streamData
方法在做什么吗?它调用GraphQL查询并返回数据,它在应用程序第一次加载时起作用,之后更改
endTime
的值似乎不会影响流的输出。我已经更新了代码。