您知道如何从34.900
获取响应数据吗?我从变异中获得了查询响应数据。
refetchQueries
import { gql } from 'apollo-boost';
export const DONE_TASK = gql`
mutation DoneTask($taskId: ID!) {
doneTask(input: {
taskId: $taskId
}) {
task {
id
status
}
}
}
`;
import { gql } from 'apollo-boost';
export const GET_TASKS_BY_STATUS = gql`
query GetTasksByStatus($status: String!) {
getTasksByStatus(status: $status) {
edges {
node {
id
status
description
}
}
}
}
`;
输出量
const response = await client.mutate({
mutation: DONE_TASK,
variables: {
taskId: 1
},
refetchQueries: () => [{
query: GET_TASKS_BY_STATUS,
variables: {
status: "OPEN"
},
}]
});
console.log(response);
但是我希望得到data: {
doneTask: {
task: { id: 1, status: 'DONE'}
}
}
的响应数据。
?
答案 0 :(得分:2)
通过refetchQueries
进行重新获取的任何查询应该已经被某些useQuery
钩子,Query
组件或graphql
HOC使用。为了访问与您的突变相同的组件内的数据,您需要利用在相同的组件内重新获取的查询:
const { data } = useQuery(GET_TASKS_BY_STATUS, { variables: { status: 'OPEN' } })
const [mutate] = useMutation(DONE_TASK,{
variables: {
taskId: 1,
},
refetchQueries: () => [{
query: GET_TASKS_BY_STATUS,
variables: {
status: 'OPEN',
},
}],
})