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
Dart 颤振/图形ql-以自定义类型为参数的变异_Dart_Flutter_Graphql - Fatal编程技术网

Dart 颤振/图形ql-以自定义类型为参数的变异

Dart 颤振/图形ql-以自定义类型为参数的变异,dart,flutter,graphql,Dart,Flutter,Graphql,我不熟悉flifter和graphQL,目前我正在将变异集成到我的应用程序中。因此,我让服务器端使用模式中定义的一些自定义类型,但我不知道如何在flift端指定它们。让我们看一些代码: input DiaryGroupPermission { groupId: Int! permission: Int! } input DiaryInsideCommunity { communityId: Int! permissions: [DiaryGroupPermission]! }

我不熟悉flifter和graphQL,目前我正在将变异集成到我的应用程序中。因此,我让服务器端使用模式中定义的一些自定义类型,但我不知道如何在flift端指定它们。让我们看一些代码:

input DiaryGroupPermission {
  groupId: Int!
  permission: Int!
}

input DiaryInsideCommunity {
  communityId: Int!
  permissions: [DiaryGroupPermission]!
}

createDiary(community: DiaryInsideCommunity, description: String, title: String!): Diary
但在客户机上,我不知道如何指定突变内的免疫性。 我试过这样的方法:

String createDiary = """
  mutation CreateDiary(\$title: String!, \$description: String!, \$community: DiaryInsideCommunity) {
    createDiary(
    title: \$title,
    description: \$description,
    community: \$community
  ) {
    id
  }
)}""".replaceAll('\n', ' ');
并将我的发言如下:

runMutation({
            "title": _generalPage.title(),
            "description": _generalPage.description(),
            "community": {
              "communityId": 1,
              "permissions": _permissionPage.selectedGroups().map((group) {
                return {
                  "groupId": group.id,
                  "permission": 1,
                };
              }).toList(),
            }
          });

有什么想法吗?在谷歌上找不到任何东西。

很想看看围绕graphql_flutt库创建的社区

class DiaryGroupPermission {
  int groupId;
  int permission;

  DiaryGroupPermission.fromJson(Map json)
      : groupId = json['groupId'],
        permission = json['permission'];
}

class DiaryInsideCommunity {
  int communityId;
  List<DiaryGroupPermission> permissions;

  DiaryInsideCommunity.fromJson(Map json)
      : communityId = json['communityId'],
        permissions = json['permissions']
            .map<DiaryGroupPermission>((Map permisionJson) =>
                DiaryGroupPermission.fromJson(permisionJson))
            .toList();
}

class Diary {
  String body;

  Diary(dynamic value) : body = value.toString();
}

typedef Diary createDiaryFunction(
    DiaryInsideCommunity community, String description, String title);

DiaryInsideCommunity community = DiaryInsideCommunity.fromJson({
  'communityId': 1,
  'permissions': [
    {'groupId': 1, 'permission': 1}
  ]
});

Diary mutation(DiaryInsideCommunity community,
        {String description, @required String title}) =>
    Diary(community.permissions[0].groupId);

Diary mutationResult = mutation(community, description: "a", title: "b");
类日志组权限{
int-groupId;
int许可;
DiaryGroupPermission.fromJson(映射json)
:groupId=json['groupId'],
permission=json['permission'];
}
阶级隔离{
int社区ID;
列出权限;
diarynsidecommunity.fromJson(映射json)
:communityId=json['communityId'],
permissions=json['permissions']
.map((map permissionjson)=>
DiaryGroupPermission.fromJson(permissionJSON))
.toList();
}
课堂日记{
弦体;
日记(动态值):body=value.toString();
}
typedef日记createDiaryFunction(
社区、字符串描述、字符串标题);
DiaryInsideCommunity社区=DiaryInsideCommunity.fromJson({
“社区ID”:1,
“权限”:[
{'groupId':1,'权限]:1}
]
});
日记突变(日记社区),
{字符串描述,@required String title})=>
日志(community.permissions[0].groupId);
日记突变结果=突变(社区,描述:“a”,标题:“b”);
我实现了您想要在dart中实现的类型,并创建了一个模型变异函数来演示如何调用它

在dart中没有更简单的打字方法

为这个图书馆的创造者干杯

Eus

假设您正在使用, 您可以在变量中指定它 例如,假设你对一个突变有这样的定义

 type Mutation {
 createMeterReading(
  createMeterReadingInput: CreateMeterReadingInput
 ): MeterReading }
您的输入类型定义

     input CreateMeterReadingInput {
           reading: Float
           companyId: Int
           companyStaffId: Int
           customerId: Int
           readingDataType: String
           latitude: Float
           longitude: Float
           masterMeterId: Int
           analogMeterId: Int
           type: String
           editedStatus: String
           base64Image: String
           readingTime: String
     }
飘飘然

 final response = await client.value.mutate(MutationOptions(
  variables: {
    'createMeterReadingInput': {
      'reading': double.parse(_meterReadingController.text),
      'companyStaffId': _decodedToken["companyStaffId"],
      'analogMeterId': waterMeter["analogMeterId"],
      'type': "actual",
      'base64Image': getBase64(),
      'readingTime': timeNow,
      'latitude': widget?.currentPosition?.latitude,
      'longitude': widget?.currentPosition?.longitude
    }
  },
  documentNode: gql(r"""
mutation createMeterReading($createMeterReadingInput:CreateMeterReadingInput  ) {
  createMeterReading(createMeterReadingInput: $createMeterReadingInput) {
 meterReadingId
reading
companyId
companyStaffId
imageUrl
editedStatus
companyStaff{
  firstName
}
}
}


"""),
));

真的有用吗?是否应该在客户端的
gql
中定义
DiaryInsideCommunity
?您是否尝试过使用dgraph/slash graphQL?那里的突变对我不起作用