传递参数时出现GraphQL语法错误

Posted

技术标签:

【中文标题】传递参数时出现GraphQL语法错误【英文标题】:GraphQL Syntax Error while passing parameters 【发布时间】:2020-08-01 22:56:36 【问题描述】:

当我尝试传递这个查询时,我在第一行得到一个语法错误,即使我使用了一个具有相同语法的突变:

GraphQLError: Syntax Error: Expected Name, found 
interface WhereInput 
  email_contains: String;


export const LoadUsersQuery = gql`
query usersList($where: WhereInput) 
    users(where: $where) 
      nodes 
        email
        firstName
      
      totalCount
    

usersList这个词是自定义的。

这是在操场上的原始查询:

query 
    users(where: email_contains: "B") 
      nodes 
        email
        firstName
      
      totalCount
    
  

我就是这样称呼它的:

const [searchItem, setSearchItem] = useState('');
  const [loadUsers,  loading, data ] = useLazyQuery(LoadUsersQuery);
return (
    <div>
        <StyledSearchBar
          value=searchItem
          onChange=value => 
            setSearchItem(value);
          
           onRequestSearch=() => loadUsers(
             variables: 
               where: email_contains: searchItem
             
           )

        />
    </div>
  );

【问题讨论】:

什么是searchItem? ...首先检查硬编码值...首先在onRequestSearch正文中定义一些$vars对象,检查它是否正确定义,传递到variables,检查网络请求等。 searchItem 是我从搜索栏读取的值。我已经打印并测试过了,它可以工作。查询给出语法错误。它永远不会被执行,所以它永远不会到达网络请求部分@xadm 语法指向 .... ? 当您遇到错误时,请始终发布确切的错误消息。 下次在操场上使用变量进行测试 【参考方案1】:

语法错误是正确的(应该指出问题的确切位置) - 那里有一个流浪的

users(where: $where) 
#                  ^

【讨论】:

以上是关于传递参数时出现GraphQL语法错误的主要内容,如果未能解决你的问题,请参考以下文章

在宏中传递变量 args 时出现语法错误

在参数中添加变量时出现语法错误

在mysql查询中使用参数时出现mysql语法错误

使用状态参数发送数据时出现语法错误

通过 std::thread 将参数传递给函数时出现语法错误

使用参数[duplicate]创建bash函数时出现语法错误