查询中的GraphQL Apollo枚举



在服务器上,我在模式中定义了枚举和查询:

type Query {
hello: String!
getData(dataType: DataType!): [DataPoint]
} 
enum DataType {
ACCOUNT,
USER,
COMPANY
}
...

在客户端:

export const GET_DATA = gql`
query($dataType: DataType) {
getData(dataType: $dataType) {
...
}
}
`;

每当我尝试在ApolloClient中调用查询时,我都会得到一个验证错误,因为Apollo期望的是值,而不是字符串,所以不是";账户";,它期望ACCOUNT。尝试传递整数值显然也没有效果。

const dataResponse = useQuery(GET_DATA, {
variables: { dataType: "ACCOUNT" },
});

为了能够正确地将Enum值作为变量传递,我需要对服务器或客户端实现进行哪些更改?理想情况下,我希望能够将字符串值传递到useQuery方法中。

在客户端上执行:

export const GET_DATA = gql`
query($dataType: String) {
getData(dataType: $dataType) {
...
}
}
`;

这是因为您的枚举是字符串的枚举。

最新更新