【发布时间】:2021-09-21 22:32:15
【问题描述】:
我是 GraphQl 的新手,我想使用我在 Laravel 中实现的这个查询:
type Query {
loginAccount(mobile_number:String
@rules(apply:["required","min:11","max:11"])
):ResponseResultWithMessage
}
type ResponseResultWithMessage{
result:Int,
title:String
description:String
}
当我测试它时,这个查询对我来说很好,但是当我尝试在 Flutter 上实现它时,我得到了这个错误:
I/flutter (20938): OperationException(linkException: null, graphqlErrors:[GraphQLError(消息:字段“loginAccount” 参数“mobile_number”需要字符串类型,找到字符串。, 位置:[ErrorLocation(行:3,列:31)],路径:空,扩展: {类别:graphql})])
我的代码:
class _Login extends State<Login> {
final _formKey = GlobalKey<FormState>();
final sample = r'''
query {
loginAccount(mobile_number:String) {
result
title
description
}
}
''';
@override
Widget build(BuildContext context) {
return Scaffold(
//...
body: Query(
options: QueryOptions(document: gql(sample), variables:<String,dynamic> {
'mobile_number': '0123456789',
}),
builder: (QueryResult result, { VoidCallback refetch, FetchMore fetchMore }) {
if (result.hasException) {
debugPrint(result.exception.toString());
return Text(result.exception.toString());
}
if (result.isLoading) {
return const Text('Loading');
}
debugPrint('$result');
return Container();
}
));
}
}
【问题讨论】:
-
你能添加更多关于你的服务器端实现的信息吗?您使用的是哪个确切的 PHP 包?似乎该指令正在将输入类型
String更改为不同的类型但具有相同的名称(想象有两个具有相同名称的不同类不等于另一个)。
标签: flutter dart graphql flutter-graphql