Flutter GraphQL 错误字段需要类型 String,找到 String
Posted
技术标签:
【中文标题】Flutter GraphQL 错误字段需要类型 String,找到 String【英文标题】:Flutter GraphQLError field requires type String, found String 【发布时间】: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
更改为不同的类型但具有相同的名称(想象有两个具有相同名称的不同类不等于另一个)。
【参考方案1】:
你的错误在这里,
query
loginAccount(mobile_number:String) //<-- mobile_number:String error!!
result
title
description
您需要一个数字,但您传递的是字符串(这里的字符串不是变量,您可以将其分配为常量String
)。
我在“$txt.text”作为动态变量的项目中做了类似的事情
query recipes
recipes(where: name: _similar: "$txt.text")
id
name
description
ingredients
id
name
您也可以先尝试在某个控制台中查询,然后在 Flutter 中运行。
【讨论】:
你的意思是variables:<String,dynamic> 'mobile_number': '0123456789',
应该是`variables:<String,dynamic> 'mobile_number': '$mobile_number.text',
?
是的,但是让我知道您使用什么插件进行 graphql 查询我正在使用 hasura_connect,这对我来说很好
我们使用 Laravel 在服务器上实现了 GraphQL以上是关于Flutter GraphQL 错误字段需要类型 String,找到 String的主要内容,如果未能解决你的问题,请参考以下文章
“文件”类型的 GraphQL 错误字段“图像”必须具有子字段选择。您的意思是“图像 ... ”吗?
为啥我的 Graphql 项目抛出错误:字段类型必须是输出类型但得到:未定义
带有快速错误的 GraphQL:Query.example 字段类型必须是输出类型,但得到:[object Object]
在 GraphQL 中不能有带有嵌套字段的输入类型。错误:预期类型是 GraphQLInputType,但不是
Angular Apollo:错误:GraphQL 错误:“Mutation”类型的字段“AuthLogin”上的未知参数“用户名”