繁体   English   中英

Flutter 将变量传递给 GraphQl 查询并出现错误

[英]Flutter passing variable to GraphQl query and getting error

这是一个非常简单的GraphQl查询,可以在graphql_playgroundRestClient应用程序中正常工作

type Query {
    user(id: ID @eq): User @find(model:"App\\Models\\User")
}


type User {
    id: ID!
    name: String
    email: String
}

现在在Flutter我想使用此query并为user方法传递任何id ,当我尝试执行此操作时,出现此错误:

The following SourceSpanException was thrown building UserList(dirty):
Error on line 1, column 23: Expected an argument name
  ╷
1 │           query{ user($id : Int!){
  │                       ^
  ╵

我的代码:

class UserList extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Query(
      options: QueryOptions(
        document: gql(r'''
          query{ user($id : Int!){
            name
            id
          }
          }
        '''),
        variables:{
          'id': 9,
        },
      ),
      builder: (
        QueryResult result, {
        Future<QueryResult> Function(FetchMoreOptions)? fetchMore,
        Future<QueryResult?> Function()? refetch
      }) {
        if (result.data != null){
          print(result.data);
        }
        /// return widget
      },
    );
  }
}

您在客户端中的查询对于处理变量似乎不正确。 检查https://graphql.org/learn/queries/#variables 对于您的客户来说,它可能应该是这样的:

query GetUser($id: Int!) { 
    user(id : $id) {
        name
        id
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM