传递参数时出现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语法错误的主要内容,如果未能解决你的问题,请参考以下文章