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