参数化查询 graphQL
Parameterized queries qraphQL
我想从 Apollo 客户端向 Apollo 服务器发出参数化请求。
在客户端:
const GET_VALUES = gql`
query Values($desc: String!) {
Values
}
`;
function ValueSelector({ pickValue, dirDesc }) {
const { loading, data, error } = useQuery(GET_VALUES, {
variables: { dirDesc },
});
}
在服务器上(模式):
type Query {
Values(desc: String!): [String]
@cypher(
statement: "MATCH (:Dir{description:$desc})-[:value]->(v) RETURN collect(v.TXTLG)"
)
}
结果:
[GraphQL error]: Message: Field "Values" argument "desc" of type "String!" is required, but it was not provided., Location: [object Object], Path: undefined
[Network error]: ServerError: Response not successful: Received status code 400
您应该在 useQuery 的变量参数中使用 desc
而不是 dirDesc
。试试这个:
const { loading, data, error } = useQuery(GET_VALUES, {
variables: { desc: dirDesc },
});
您在客户端的查询声明缺少实际变量。应该是这样的
const GET_VALUES = gql`
query Values($desc: String!) {
Values(dirDesc: $desc)
}
`;
然后你可以使用 useQuery 传递 dirDesc。
const GET_VALUES = gql`
query Values($desc: String!) {
Values(desc: $desc)
}
`;
function ValueSelector({ pickValue, dirDesc }) {
const { loading, data, error } = useQuery(GET_VALUES, {
variables: { desc:dirDesc},
});
我想从 Apollo 客户端向 Apollo 服务器发出参数化请求。
在客户端:
const GET_VALUES = gql`
query Values($desc: String!) {
Values
}
`;
function ValueSelector({ pickValue, dirDesc }) {
const { loading, data, error } = useQuery(GET_VALUES, {
variables: { dirDesc },
});
}
在服务器上(模式):
type Query {
Values(desc: String!): [String]
@cypher(
statement: "MATCH (:Dir{description:$desc})-[:value]->(v) RETURN collect(v.TXTLG)"
)
}
结果:
[GraphQL error]: Message: Field "Values" argument "desc" of type "String!" is required, but it was not provided., Location: [object Object], Path: undefined
[Network error]: ServerError: Response not successful: Received status code 400
您应该在 useQuery 的变量参数中使用 desc
而不是 dirDesc
。试试这个:
const { loading, data, error } = useQuery(GET_VALUES, {
variables: { desc: dirDesc },
});
您在客户端的查询声明缺少实际变量。应该是这样的
const GET_VALUES = gql`
query Values($desc: String!) {
Values(dirDesc: $desc)
}
`;
然后你可以使用 useQuery 传递 dirDesc。
const GET_VALUES = gql`
query Values($desc: String!) {
Values(desc: $desc)
}
`;
function ValueSelector({ pickValue, dirDesc }) {
const { loading, data, error } = useQuery(GET_VALUES, {
variables: { desc:dirDesc},
});